LINUX.ORG.RU

История изменений

Исправление X512, (текущая версия) :

Ты не заметил, что у них разные параметры?

В том и проблема, что при наследовании для каждой комбинации параметров надо писать отдельный конструктор и нельзя просто отнаследовать конструктор (на самом деле можно, но тогда нельзя будет добавлять новые конструкторы которых нет в базовом классе).

Получается дублирующий паттерн вроде

Derived(): Base() {}
Derived(int a): Base(a) {}
Derived(int a, int b): Base(a, b) {}
Derived(int a, int b, int c): Base(a, b, c) {}

То есть ты хочешь сказать, что если класс B наследован от класса A, то конструктор B не может вызвать конструктор A? Я правильно тебя понял?

Нельзя указать, чтобы наследовались конкретные (или все, но с возможностью добавлять новые) конструкторы без писанины вроде Derived(int a, int b, int c): Base(a, b, c) {}.

Исправление X512, :

Ты не заметил, что у них разные параметры?

В том и проблема, что при наследовании для каждой комбинации параметров надо писать отдельный конструктор и нельзя просто отнаследовать конструктор (на самом деле можно, но тогда нельзя будет добавлять новые конструкторы которых нет в базовом классе).

Получается дублирующий паттерн вроде

Devived(): Base() {}
Devived(int a): Base(a) {}
Devived(int a, int b): Base(a, b) {}
Devived(int a, int b, int c): Base(a, b, c) {}

То есть ты хочешь сказать, что если класс B наследован от класса A, то конструктор B не может вызвать конструктор A? Я правильно тебя понял?

Нельзя указать, чтобы наследовались конкретные (или все, но с возможностью добавлять новые) конструкторы без писанины вроде Devived(int a, int b, int c): Base(a, b, c) {}.

Исходная версия X512, :

Ты не заметил, что у них разные параметры?

В том и проблема, что при наследовании для каждой комбинации параметров надо писать отдельный конструктор и нельзя просто отнаследовать конструктор (на самом деле можно, но тогда нельзя будет добавлять новые конструкторы которых нет в базовом классе).

Получается дублирующий паттерн вроде

Devived(): Base() {}
Devived(int a): Base(a) {}
Devived(int a, int b): Base(a, b) {}
Devived(int a, int b, int c): Base(a, b, c) {}

То есть ты хочешь сказать, что если класс B наследован от класса A, то конструктор B не может вызвать конструктор A? Я правильно тебя понял?

Нельзя указать, чтобы наследовались конкретные конструкторы без писанины вроде Devived(int a, int b, int c): Base(a, b, c) {}.