|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Порядок построения классов |
|
C/C++ - Порядок построения классов
|
Ветеран Сообщения: 1180 |
Профиль | Отправить PM | Цитировать Где можно почитать про порядок построения классов (с виртуальными функциями)? Пример:
что по правилам должно появиться на экране, A::foo(), B::foo() или какая-нить ошибка, что класс недостроен? |
|
Отправлено: 09:20, 18-03-2009 |
Забанен Сообщения: 463
|
|
Отправлено: 18:03, 22-03-2009 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать В конструктор C передаётся часть недостроенного класса B с собственной реализацией виртуальных функций (*this)
|
Отправлено: 07:37, 23-03-2009 | #12 |
Забанен Сообщения: 463
|
В конструкторе передается не сам не достроенный объект а его указатель типа B. В самое классе C он преобразуется в класс A (он же подкласс его) что дает a.foo() корректно. Вот вопрос что будет если сделать так C(B& b) {b.foo();} - надо будет дома проверить
|
Отправлено: 07:50, 23-03-2009 | #13 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Цитата Alan85:
Цитата Alan85:
struct A { virtual void foo() {cout << "A::foo()\n";} }; struct C { C(A& a) {test(a);} void test(A& a) { clog << "C::test with &a=" << &a << ", this=" << this << "\n"; a.foo(); } }; struct B : A, C { B() : A(), C(*this) { test(*this); } void foo() {cout << "B::foo()\n";} }; Это особенность компилятора или стандарт с++ такой? |
||
Отправлено: 14:36, 23-03-2009 | #14 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Php. Поиск документации для начинающих по использованию классов. | BarsMaster | Вебмастеру | 5 | 10-01-2007 21:44 | |
[решено] Разукрашивание сайтов по-своему, подменой CSS и Классов | hasherfrog | Вебмастеру | 16 | 20-10-2006 01:21 | |
Не совсем стандартное решение построения LAN. | LEXX2002 | Сетевые технологии | 4 | 14-03-2005 21:18 | |
Reverse ingineering классов (обратно UML-диаграмме) | djogik | Программирование и базы данных | 1 | 12-01-2005 21:29 | |
Программа для построения графиков функций | Sherla | Программное обеспечение Windows | 10 | 25-04-2004 19:20 |
|