![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Порядок построения классов |
|
C/C++ - Порядок построения классов
|
![]() Ветеран Сообщения: 1180 |
Где можно почитать про порядок построения классов (с виртуальными функциями)? Пример:
что по правилам должно появиться на экране, 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 |
|