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


Автор: Sergio 11.10.2006, 14:18
Здраствуйте обясните пожалуста что это означаэт и чем они друг от друга отличаются. Потому что в хелпе плохо написано((
Код
A *a = new B;            


Код
B *b = new B; 

Автор: sergejzr 11.10.2006, 14:23
Ну в принципе не хватает описания, какой класс, чего наследует. Если B наследует A, то при выполнении
а->funktion() выполнится функция от B, если она обьявлена virtual, иначе от А.
При выполнении b->function() Выполнится всегда функция от B если она определена в B, иначе от А.

Вот такой правильный и непонятный ответ созданный благодаря телепатии. Хочешь понятнее - конкретизируй вопрос. 

Автор: Sergio 11.10.2006, 14:35
Вот код:

Код

class A {
        virtual void g()  cout<<"1"<<endl;     
                void h()  cout<<"2"<<endl; 
            }

class B {
                void g()  cout<<"3"<<endl;     
                void h()  cout<<"4"<<endl; 

            }

A *a = new B;
B *b = new B;  

  
a->g() cout<<" "<<endl;
a->h() cout<<" "<<endl;
b->g() cout<<" "<<endl;
b->h() cout<<" "<<endl;



Код сам писал может что неправильно. Не знаю как написать что клас В наследует от класа А. Мне нужно знать что в итоге виведет на єкран.

Автор: chaos 11.10.2006, 14:38
3
2
3
4

Автор: Athlon 11.10.2006, 14:55
Цитата

Не знаю как написать что клас В наследует от класа А. 

это что ли smile :
Код

class B : public A
{
//..........
}

 P.S. а почему бы тебе не поитать о полиморфизме и наследовании, можно найтиматериал  и для начинающих и для опытных программеров smile 

Автор: vinter 11.10.2006, 16:33
Цитата

Мне нужно знать что в итоге виведет на єкран.

Цитата

3
2
3
4

ничего не выведет, она даже не скомпилится..
ошибка в строке
Код

A *a = new B;

класс А никакого отношения к В не имеет...

Автор: Damarus 11.10.2006, 16:51
vinter, 
Цитата(Sergio @  11.10.2006,  15:35 Найти цитируемый пост)
Не знаю как написать что клас В наследует от класа А.

 smile 

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