LINUX.ORG.RU

C++


0

1

объясните пожалуйста

есть два класса к примеру

class A{

int a;

public:

...

void printA();

...

};

есть класс B

class B{

A *A1;

public:

B(){A1 = new A;}

~B(){delete A1;}

void print(){A1->printA();} вот почему так работает, а если написать A1.printA(); то не работает?Где пробелы в знаниях?

};


> Где пробелы в знаниях?

Непонимание сути указателей

runtime ★★★★
()

А1.printA(); - вызов метода для экземпляра класса.
A1->printA(); - вызов метода для _укзазателя_ на экземпляр класса.

Можете попробовать вместо
A* A1;
написать
A A1;

Тогда телодвижения в конструкторе и деструкторе можно просто выкинуть.

А вообще стоит начать с книжки по С++, прежде чем начинать писать код.
Могу порекомендовать вот эту http://www.books.ru/shop/books/559200 (Шилдт «С++: базовый курс»)

trex6 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.