Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > наследование абстрактного класса


Автор: knut 19.11.2006, 21:24
Есть абстракнуый класс А от него наследуется класс B 

Код


class A
{
virtual func() = 0;
};
class B::public A
{
};

main()
{
A *a;
B *b;
b = new B;//error 
a->func();
} 

Автор: vinter 19.11.2006, 21:33
Код

class A    
{    public:
   virtual func() = 0;    
};    

class B:public A    
{    
    func()
    {
    };
};    
main()    
{    
A *a;    
B *b;    
b = new B;//error    
a->func();    
} 

виртуальная ф-ия должна быть переопределена..

Автор: knut 19.11.2006, 22:06
а если просто виртуальная функция тоже переопределять надо?

Автор: Daevaorn 19.11.2006, 22:15
Цитата(knut @  19.11.2006,  23:06 Найти цитируемый пост)
а если просто виртуальная функция тоже переопределять надо? 

Не обязательно

Автор: knut 19.11.2006, 22:17
я ошибся у меня func() ne pure но new не могу делать 
error C2259: B: cannot instantiate abstract class 

Автор: Daevaorn 19.11.2006, 22:20
knut, 
Код

class A
{
virtual func() {}
};
class B::public A
{
};

main()
{
A *a;
B *b;
b = new B;//error 
a->func();
} 


Автор: niknor 20.11.2006, 23:57
Код

class A
{
public:        //!!!
virtual func() {}
};
class B::public A
{
};

main()
{
A *a;
B *b;
b = new B;//error 
a->func();
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)