Вопросы по теме 'private-inheritance'

Ошибочный частный базовый класс недоступен?
Компиляция этого кода с использованием g++ 4.2.1: struct S { }; template<typename T> struct ST { }; template<typename BaseType> class ref_count : private BaseType { }; template<typename RefCountType> class rep_base : public...
1221 просмотров

Почему частное наследование увеличивает вероятность того, что кто-то взломает мой код по сравнению с композицией?
Автор этой статьи утверждает, что «Обычно вы не хотите иметь доступ к внутренностям слишком многих других классов, и частное наследование дает вам часть этих дополнительных возможностей (и ответственности). это увеличивает вероятность того, что...
167 просмотров
schedule 27.07.2022

Как я могу переопределить чисто виртуальный метод, используя частно унаследованный метод?
У меня есть следующее: class Abstract { virtual void AbstractMethod() = 0; }; class Implementer { void AbstractMethod() {}; }; class Concrete : public Abstract, private Implementer {}; Я не могу создать экземпляр Concrete , потому...
235 просмотров

Конструктор доступен за пределами частного наследуемого типа?
Название — это лишь одна из немногих вещей, которые меня смущают в следующем примере: struct A { A() { std::cout << "Default constructor of A" << std::endl; } A(const A &) { std::cout << "Copy...
53 просмотров
schedule 02.03.2024

Переопределить общедоступную виртуальную функцию частной базовой функцией?
Рассмотрим два класса A и B со следующим интерфейсом: class A { public: virtual void start() {} //default implementation does nothing }; class B { public: void start() {/*do some stuff*/} }; а затем третий класс, который...
516 просмотров

Как вызвать конструктор копирования всех базовых классов для копирования объекта большинства производных классов при наследовании бриллиантов в С++?
Рассмотрим приведенный ниже код: #include<iostream> using namespace std; class A { public: A() {cout << "1";} A(const A &obj) {cout << "2";} }; class B: virtual A { public: B() {cout << "3";} B(const...
2013 просмотров