Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / virtual and non-virtual instance of a base class / 7 сообщений из 7, страница 1 из 1
29.04.2018, 00:12
    #39638224
koleso_cpp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
virtual and non-virtual instance of a base class
Наткнулся на sample c++ test от Brainbanch
Вопрос был такой:
Which of the following statements is true when a derivation inherits both a virtual and non-virtual instance of a base class?

и правильный ответ
Choice 2:
Each derived class object has a base object from the virtual instance and a base object from non-virtual instance.

Еще варианты:
Choice 1
Each derived class object has base objects only from the non-virtual instance.
Choice 3
Each derived class object has base objects only from the virtual instance.
Choice 4
Each base class object has derived objects only from the virtual instance.
Choice 5
Each base class object has derived objects only from the non-virtual instance.

Объясните пожалуйста, чего хотят они, по-русски?))
Я Майерса и Страуструпа читал по англиски, все вроде понимал,
а тут туплю :(
...
Рейтинг: 0 / 0
29.04.2018, 04:20
    #39638244
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
virtual and non-virtual instance of a base class
koleso_cpp,

ньюансы множественного наследования, с виртуальным базовым классом и с невиртуальным - есть у Страустрапа
...
Рейтинг: 0 / 0
29.04.2018, 13:21
    #39638292
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
virtual and non-virtual instance of a base class
koleso_cpp,

Правильный ответ: множественное наследование не надо использовать (кроме наследования интерфейсов).
...
Рейтинг: 0 / 0
03.05.2018, 10:00
    #39639204
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
virtual and non-virtual instance of a base class
Anatoly Moskovskykoleso_cpp,

Правильный ответ: множественное наследование не надо использовать (кроме наследования интерфейсов).

Это лишь твоё частное неправильное мнение.
В следующий раз помечай, пожалуйста, тегом #IMHIO
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.05.2020, 15:07
    #39954636
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
virtual and non-virtual instance of a base class
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
#include <iostream>
   struct   coor  {      // base class
      double  X=1.0;
   };
//   struct bad : coor, coor {}; // error is here

   struct a: virtual coor{};
   struct d: virtual coor{};
//   struct a: coor{};
//   struct d: coor{};

   struct coor3:  a,  d{   // derived class
      double A=2.0; // altitude
   };
   int main(){
     coor3 b ;
    // как выбрать X и X
     printf("\n%.6f, %.6f, %.2f", b.a::X, b.d::X, b.A);
     printf("\nsizes %d/%d", sizeof (coor), sizeof(coor3));
     return 0;
   }



а чем объяснить, что размер coor3 оказался 32?


http://cpp.sh/


Код: plaintext
1.
 1.000000, 1.000000, 2.00
sizes 8/32 
...
Рейтинг: 0 / 0
06.05.2020, 15:29
    #39954649
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
virtual and non-virtual instance of a base class
...
Рейтинг: 0 / 0
06.05.2020, 15:45
    #39954658
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
virtual and non-virtual instance of a base class
если virtual убрать, то вообще 24 байта будет, как бы понятно.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / virtual and non-virtual instance of a base class / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]