Unsigned int Weight;
Void Meow();
};
Объявление класса не резервирует память под данные, здесь только сообщается: о существование класса с таким именем и сколько памяти требуется для каждого объекта этого класса (память выделяется под данные-члены, под методы память не выделяется.
Определение объектов происходит так:
Cat Vaska;
Доступ к членам класса.
Существует оператор прямого доступа (.)
Vaska.Weight =5;
Vaska.Meow();
Рекомендации:
1. используйте ключевое слово classдля объявления класса.
2. используйте оператор прямого доступа к членам класса и его методам.
3. не путайте объявление с определением.
4. не путайте класс с объектом.
5. не присваивайте значения классу.
В объявления класса используются и другие ключевые слова. Двумя важными из них являются public и private. Все данные-члены и методы являются закрытыми по умолчанию, то есть к ним можно получить доступ только методами самого класса. Открытые члены доступны всем функциям программы.
Определение доступности и скрытости для членов класса иммет принципиальное значение.
Class Cat
{
Unsigned int Age;
Unsigned int Weight;
Void Meow();
};
а затем в main()
Cat Vaska;
Vaska.Age=5;
Вызовет ошибку компиляции, так как все члены класса Сat закрыты, а присвоение идёт во внешней к классу функции.
Поэтому необходимо сделать:
Class Cat
{public:
Unsigned int Age;
Unsigned int Weight;
Void Meow();
};
Согласно общей стратегии объектно-ориентированного программирования данные-члены класса должны быть закрытыми. Доступ следует открыть только к методам класса обеспечивающим доступ к закрытым данным.. Этим достигается инкапсуляция данных внутри класса. Эти функции называются методами доступа.
Это позволяет скрыть от пользователя вид в котором хранятся данные, и если в дальнейшем этот вид будет изменён, то достаточно переписать только функции доступа, все остальные функции продолжат работать. Поэтому последующая поддержка программы требует меньших затрат.
#include<iostream.h>
#include <alloc.h>
#include <math.h>
#include <stdlib.h>
Class Mass
{
int *Arrey;
Int n;
public:
Int getSize();
Void putSize(int ss);
Void getArrey(int ras);
Int putArrey();
Void del();
};
void Mass::getArrey(int ras)
{ int i;
Randomize();
Arrey = new int[n];
for(i=0;i<n;i++)
(Arrey+i)=random(2*ras)-ras;
}
int Mass::putArrey()
{ int i;
for(i=0;i<n;i++)
cout<<*(Arrey+i)<<"\t";
cout <<"\n";
Return 0;
}
int Mass::getSize()
{ return n;
}
void Mass::putSize(int ss)
{n=ss;
}
void Mass::del()
{delete[] Arrey;
}
Int main(void)
{
int ss,m,size=100;
Mass Arrey;
cout <<"Введите размерность массива\n по строкам:";
cin >>ss;
Arrey.putSize(ss);
cout << "размерность массива = "<<Arrey.getSize()<<"\n";
Дата добавления: 2015-12-26; просмотров: 633;