Здравствуйте, ekamaloff, Вы писали:
E>Здравствуйте, Аноним, Вы писали:
А>>Ну как ты скроешь свойство, если любой класс — это и любой из его родителей?
E><>
E>Если бы все в программировании было так, как кажется правильным по логике, было бы просто замечательно. Но иногда все таки нужно скрыть свойство/метод объявленные в предке — не бывает правил без исключений. В объектной модели C++ например это возможно, а в Delphi — нет.
Что то вы путаете. Нельзя в С++ занижать область видимости.
#include <iostream>
class CBase
{
public:
virtual int testFunc() = 0;
};
class CParent: public CBase
{
public:
CParent(){}
~CParent(){}
int testFunc(){return 0;}
};
class CChild: public CParent
{
private:
int testFunc(){return 1;}
public:
CChild(){}
~CChild(){}
};
int _tmain(int argc, _TCHAR* argv[])
{
CBase* p[2];
p[0] = new CParent;
p[1] = new CChild;
std::cout<<"Parent "<<p[0]->testFunc()<<"Child "<<p[1]->testFunc()<<std::endl;
return 0;
}
Посмотрите результат.