Форум программистов, компьютерный форум CyberForum.ru

Наследование - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите с куском кода. http://www.cyberforum.ru/cpp-beginners/thread334624.html
C++ не знаю. Нужен кусок кода. Помогите написать его. Логика следующая. Если в БД (DB) в таблице (table) существует поле (field), то выполнить следующее { Если значение field равно 1, то {сам напишу событие} Если значение field равно 0, то {сам напишу событие} Если значение field не равно 1 и не равно 0, то {сам напишу событие} } В противном случае
C++ Квадрат и прямая Здравствуйте. Помогите пожалуйста написать программу на языке Си(не С++). Дан квадрат с координатами х1,у1 и х2,у2, так же даны координаты прямой х3,у3 и х4,у4. Нужно определить координаты точек пересечения прямой и квадрата. http://www.cyberforum.ru/cpp-beginners/thread334621.html
Ввод значения в функцию класса пользователем (с консоли) C++
Все привет. Столкнулся с проблемой. К примеру есть класс: class Employee { private: int age; public: int GetAge() const;
C++ compose1 и compose2
Есть ли в MSVC++ альтернатива SGI адаптеров unary_compose и binary_compose??
C++ Указатель на многомерный массив http://www.cyberforum.ru/cpp-beginners/thread334598.html
Есть двумерный массив, его нужно передать в функцию, так, что бы внутри функции можно было его изменять. Как с помощью указателей передать двумерный массив в функцию, и как внутри ф-ции к его элементам обращаться?
C++ Модификатор const в аргументах функций Постоянно путаюсь в этих константах. Как писать грамотнее? Вот так: template<typename TypeT> void TLinePointer<TypeT>::operator = (TypeT* pObject) //функция не меняет аргумент { //по идее, просится const if(pObject==0) { Release(); return; } if(mp_Pointer != pObject) { Release(); подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
3021 / 1677 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
20.07.2011, 22:55     Наследование
Вы невнимательно прочли статью, ссылку на которую привели. Конструктор виртуального базового класса вызывается только один раз в самом нижнем производном классе. Все остальные вызовы этого конструктора в других классах игнорируются. Отсюда следует, что этот конструктор обязан быть в каждом производном классе от виртуального базового. Но вообще специалисты советуют проектировать так, чтобы виртуальный базовый класс инициализировался конструктором по умолчанию.
Вот модифицированный пример из той статьи:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_str;
/////////////////////////////////////////////////////////////////////////////////////////
class A
{
    T_str a;
public:
    A(const T_str& iInit) : a(iInit)
    {}; 
    //-----------------------------------------------------------------------------------
    void print_A()
    {
        std::cout << "a = "
                  << a
                  << std::endl;
    }
};
///////////////////////////////////////////////////////////////////////////////////////// 
class B1 : virtual public A
{ 
    int b1;
public:
    B1() : b1(0xb1), A("B1")    
    {};
};
///////////////////////////////////////////////////////////////////////////////////////// 
class B2 : virtual public A
{
    int b2;
public:
    B2() : b2(0xb2), A("B2"){};
};
/////////////////////////////////////////////////////////////////////////////////////////
class C : public B1, public B2
{
    int c;
public:
    C() : c(0x0c), A("C"){};
};
///////////////////////////////////////////////////////////////////////////////////////// 
class D: public C
{
    int d;
public:
    D() : d(0x0d), A("D"){};
};
///////////////////////////////////////////////////////////////////////////////////////// 
int main()
{
    D d;    
    d.print_A();
}
 
Текущее время: 14:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru