Пример класса с методами

Между внешней (объявленной вне класса) функцией и методом класса существует принципиальное отличие. Заключается оно в том, что метод - это составная часть класса и для его вызова необходимо сначала создать соответствующий объект (исключение составляют статические методы, о которых речь будет идти позже). Кроме того, результат выполнения метода может (и, как правило, так и есть) зависеть от того, из какого объекта он вызывается.

Метод summa() объявлен как такой, что имеет тип int, поэтому в качестве результата методом возвращается целочисленное значение. Как определяется возвращаемое методом значение, видно из его кода. В частности, вводится локальная целочисленная переменная к, значение кото­рой определяется командой k=n+m и возвращается в качестве результата (команда return k). Стоит обратить внимание на два обстоятельства. Во-первых, методу «известны» ноля объекта n и m, поэтому нет необходимости их описывать в методе еще раз (достаточно инструкции-описания полей). Во-вторых, аргументов у метода нет (но пустые круглые скобки все равно указываются, причем их надо будет указывать впоследствии и при вызове метода!). Кроме того, весь код можно было упростить, сведя к инструкции return n+m - переменная k введена для наглядности. Метод show() не возвращает результат, поэтому в качестве его типа указа­но ключевое слово void. Как и в предыдущем случае, у метода нет аргумен­тов, а его назначение состоит в отображении значений полей n и m объекта, из которого этот метод вызывается. Наконец, void-метод mult() предназначен для умножения полей объекта, из которого вызывается метод, на число, которое указано аргументом мето­да. Изменение полей объекта реализуется с помощью команд n*=k и m*=k. Здесь к - целочисленный аргумент метода mult() (не следует путать этот аргумент с одноименной локальной переменной, объявленной в методе summa().
#include
using namespace std;
//Объявление класса SimpleClass:
class SimpleClass{
public:
//Целочисленные поля класса:
int m;
int n;
//Метод для вычисления суммы полей:
int summa(){
int k=n+m;
return k;
}
//Метод для отображения значений полей:
void show(){
cout << "m = " << m << endl;
cout << "n = " << n << endl;
}
//Метод для умножения полей на число:
void mult(int k){
n*=k;
m*=k;
}
};
int main(){
//Создание объектов MyObj1 и MyObj2 класса SimpleClass:
SimpleClass MyObj1,MyObj2;
//Полям объектов присваиваются значения:
MyObj1.m=1;
MyObj1.n=2;
MyObj2.m=8;
MyObj2.n=9;
//Сумма полей для разных объектов:
cout << "Total value for MyObj1 is " << MyObj1.summa() << endl;
cout << "Total value for MyObj2 is " << MyObj2.summa() << endl;
//Умножение полей объектов на число:
MyObj1.mult(3);
MyObj2.mult(2);
//Отображение значений полей объектов:
MyObj1.show();
MyObj2.show();
return 0;
}
Онлайн всего: 4
Гостей: 4
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте