- •Int count;
- •Void SetCount ( int n)
- •Int GetCount(void)
- •Void changCount(int n)
- •Void ChangeCount(int n)
- •Int secondCount;
- •Void ChangCount(int n)
- •Int count;
- •Void fa(void);
- •Void fв(void);
- •Void fc(void);
- •Void f (void);
- •Void g(void);
- •Void Display(void)
- •Void Display(void)
- •Void Display(void);
- •Void tState::Display(void)
- •Void Display(void);
- •Void Display(void);
- •Void tPopulation::Display(void)
- •Наследуемые производным классом
- •Virtual void vf();
- •Virtual void vf();
- •Virtual void vf();
- •Virtual void Draw();
- •Virtual void Draw();
- •Virtual void Draw();
- •Int value;
- •Int GetValue(void) {return value; }
- •Int multiplier ;
- •Int GetValue(void) {return value *multiplier; }
- •Virtual void f1(void);
- •Void AbstractClass::f1(void)
- •Void MyClass::f2(void)
- •5://Неполные объявления класса
- •6: Class tElem ;
class TBase {
class TDerived: public TBase {
private:
private:
public:
int secondCount
TBase() {count = 0;}
public
void SetCount (int n)
{count = n;}
TDerived()
int GetCount(void)
{return count;}
};
void ChangCount(int n)
{SetCount(GetCount() + n); }
};
Int count;
Рис. 3.5. взаимосвязь классов
TBase и TDerived
Защищенные члены класса
Защищенный член класса – нечто среднее между закрытым и открытым членом. (protected)
Подобно закрытым членам, защищенные доступны только функциям-членам класса. Вне класса защищенные члены невидимы. Подобно открытым членам, защищенные наследуются производными классами и доступны функциям-членам производных классов.
Рис. 3.6. иллюстрирует родственные взаимосвязи между производными и базовыми классами и их закрытыми, защищенными и открытыми членами.
Унаследованные члены
Унаследованные члены
Производный класс
Закрытые члены
Защищенные члены
Открытые члены
Базовый класс
Унаследованные члены
Рис. 3.6. закрытые защищенные и
открытые члены в базовом
и производном классе
правила, когда будете решать, делать ли член класса закрытым, защищенным или открытым.
Закрытые члены доступны только в классе, в котором они объявлены
Защищенные члены доступны членам их собственного класса и всем членам производных классов.
Открытые члены доступны членам их собственного класса, членам производных классов и всем остальным пользователям этого класса.
Замечание
В главе 15 объясняется, как друзья класса могут обойти эти правила.
Можно иметь столько закрытых, защищенных и открытых секций в классе, сколько потребуется, и эти секции могут следовать в произвольном порядке. (Конечно, если встраиваемая функция-член ссылается на другой член, он должен быть объявлен до реализации встраиваемой функции-члена).
ПРИМЕР базового класса
class TAnyClass {
private:
int A;
// доступен только членам TAnyClass
// т.е.fa(), fb() и fc()
Void fa(void);
// “ ”
//внешние оп-ры не могут вызывать fa()
//защищенные
protected:
int B;
// Доступен TAnyClass и
// членам производных классов