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

Виртуальное наследование (указатель на базовый класс) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге) http://www.cyberforum.ru/cpp-beginners/thread866555.html
Здравствуйте! Есть задача... вкратце. Нужно создать массив указателей по выборке животных участвующих в забеге. Это Лошадь, Крокодил, Верблюд, БТР) Как мне 4 разных типа обьектов в один массив втулить? Класс Животные, я так понял общий для всех... Их в массив нужно тулить. Тогда как в "Животные" определенного вида всунуть? На словах скажите, там разберусь)
C++ Разобрать число произвольной длины на цифры Нужно разобрать число произвольной длины на цифры и вывести их по одному. Всё это в циклах for, while, do while. Пользоваться массивом нельзя, только деление с остатком. Пробовал сделать для цикла for. Почему не работает как надо не понимаю. Помогите разобраться. #include <iostream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread866539.html
C++ Перевести первые буквы слов в верхний регистр
Помогите как это сделать ? Желательно работа с файлом, то есть что ты предложение брало из файла txt. Какие есть варианты решить эту задачу ? Помогите, пожалуйста.
C++ Написать программу, которая по номеру детали выводит ее номер на экран
Помогите пожалуйста решить пару задач :3 б)Имеется пронумерованный список деталей 1)шуруп 2)винт 3)гвоздь 4)гайка 5)болт Написать программу, которая по номеру детали выводит ее номер на экран. НО, эти задания нужно сделать с функцией. вот, заранее спасибо :3
C++ Расположить столбцы в порядке возрастания элементов K-ой строки http://www.cyberforum.ru/cpp-beginners/thread866528.html
Помогите пожалуйста решить пару задач :3 3)Задана целая матрица размером m на n. Расположить столбцы в порядке возрастания элементов K-ой строки(К задаётся пользователем) вот, заранее спасибо :3
C++ Найти количество элементов, являющихся удвоенными нечетными числами Дана целочисленная матрица. Для каждого столбца матрицы найти количество элементов, являющихся удвоенными нечетными числами. Определить, будут ли упорядочены полученные значения. Выполнить задание, используя компоненты StringGrid для вывода исходной матриц, полученной и, если необходимо, вспомогательных матриц или векторов. помогите пожалуйста( подробнее

Показать сообщение отдельно
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
16.05.2013, 00:32     Виртуальное наследование (указатель на базовый класс)
akk, Да от что я имел введу просто "вытянутый ром".

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
class C1
{
protected:
    int a;
public:
    C1():a(1){std::cout << "Konstructor C1\n";}
    ~C1(){std::cout << "Destructor C1\n";}
    virtual int Get();
};
class C2: virtual public C1
{
protected:
    int b;
public:
    C2():b(2){std::cout << "Konstructor C2\n";}
    ~C2(){std::cout << "Destructor C2\n";}
    virtual int Get();
};
class C3: virtual public C1
{
protected:
    int c;
public:
    C3():c(3){std::cout << "Konstructor C3\n";}
    ~C3(){std::cout << "Destructor C3\n";}
    virtual int Get();
};
class C4: public C2
{
protected:
    int d;
public:
    C4():d(4){std::cout << "Konstructor C4\n";}
    ~C4(){std::cout << "Destructor C4\n";};
    virtual int Get();
    
};
class C5: public C3
{
protected:
    int d;
public:
    C5():d(5){std::cout << "Konstructor C5\n";}
    ~C5(){std::cout << "Destructor C5\n";};
    virtual int Get(){return d;}
    
};
class C6: public C4,public C5
{
protected:
    int d;
public:
    C6():d(6){std::cout << "Konstructor C6\n";}
    ~C6(){std::cout << "Destructor C6\n";};
    virtual int Get(){return d;}
    
};
 
using namespace std;
int main()
{
    C1 * pointer;
    pointer = new C6();
    cout << pointer->Get();
    cout <<endl;
 
 
    return 0;
}
int C1::Get()
{
    return a;
}
int C2::Get()
{
    return b;
}
int C3::Get()
{
    return c;
}
int C4::Get()
{
    return d;
}
Просто самого давно мучал вопрос, а тестить было лень.
Если попробовать из верхушки убрать virtual, то в самом нижнем классе будет хранится два объекта С1 с каждой ветки и уже виртуальный вызов нельзя сделать.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru