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

Не получается вызвать конструктор "деда" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать функцию, которая объединяет два упорядоченных по возрастанию списка в один http://www.cyberforum.ru/cpp-beginners/thread1811009.html
2)Описать функцию, которая объединяет два упорядоченных по возрастанию списка в один. не знаю как делать помогите пожалуйста!!!!
C++ Найти в односвязном списке отрицательные элементы и удалить их Нужно в списке, типа очередь находить отрицательные элементы и удалять их. Написал код, но почему то не работает функция удаления отрицательного элемента. Помогите разораться. Спасибо. #include... http://www.cyberforum.ru/cpp-beginners/thread1811001.html
C++ Перевод букв в цифры по таблице
Всем привет :) Не так давно занялся C++, передо мной встала задача перевести 21 букву в 21 цифру по следующей таблице: _ = 0 A = 1 B = 2 C = 3 D = 4 E = 5 F = 6
C++ Сколькими способами можно изменить заданную последовательность, чтобы она осталась возрастающей?
Дана последовательность из N различных чисел. Сколькими способами можно удалить из нее ка- кие-то числа, чтобы оставшаяся последовательность была возрастающей? Два способа удаления чисел считаются...
C++ Считывание заданного многозначного числа и разбивание его на раздельные цифры http://www.cyberforum.ru/cpp-beginners/thread1810972.html
Доброго времени суток! Как можно реализовать чтение каждой цифры числа заданного с клавиатуры? Напрм. число 125, разбить на 1, 2, 5? Как то так
C++ Вычислить сумму чисел в интервале, заданном вводимыми числами; использовать рекурсивную функцию #include <iostream> using namespace std; int sum(int y, int x); int main() { int a, b; подробнее

Показать сообщение отдельно
Operok
161 / 159 / 44
Регистрация: 15.02.2015
Сообщений: 454
Завершенные тесты: 2
21.09.2016, 10:51
Цитата Сообщение от Некий_Чел Посмотреть сообщение
На деле у меня в Child не только одно поле, а целые методы вызываются, которые инициализируют множество полей, так что простым аргументом по умолчанию тут не обойтись.
Если вы не хотите в Grandchild классе эти методы вызывать то тут либо нужно подумать - а действительно ли этот класс должен наследоваться от Child, либо сделать protected конструктор только с нужными действиями, который будет вызывать Grandchild
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
class Me
{
public:
    Me(int a) : _a(a) {}
    ...
private:
    int _a;
}
class Child : public Me
{
public:
    Child(int x, int y) : Me(10)
    {
        //инициализация нужная только в классе Child
    }
protected:
    Child(int a) : Me(a) {}
}
class Grandchild : public Child
{
public:
    Grandchild(int a, int b) : Child(a)
    {
        //инициализация grandchild
    }
    ...
}
Но это плохое наследование, если потомок не должен вызывать основной конструктор родителя

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
class Child : public Me
{
public:
    Child(int x, int y) : Me(10)
    {
        //инициализация нужная только в классе Child
    }
protected:
    using Me::Me; // для потомка доступны конструкторы класса Me
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru