具有相同名称的类的构造函数继承
Constructor inheritance with classes of the same name
我想继承基类的构造函数,但不编译。如何在不更改类名的情况下解决此问题?
class MyClass
{
public:
class A
{
};
};
class MyClass2 : MyClass
{
public:
class A : MyClass::A
{
//error: expected nested-name-specifier before ‘namespace’
using (MyClass::A)::(MyClass::A);
};
};
using MyClass::A::A;
构造函数由一个限定名引用到应该从中导入它的基类,即MyClass::A
,然后是引用构造函数的类名,但仅引用类名,而不是限定名,即A
。
使用MyClass::A::A;
能满足您的要求吗?
如果要使用MyClass::A
类中的method()
,则必须编写using MyClass::A::method;
。在您的案例中,method()
是构造函数,名为A()
。
相关文章:
- 具有相同名称的类的构造函数继承
- 多复制构造函数继承中的惊人行为
- CRTP 和复制/移动赋值/构造函数继承
- 复制构造函数继承动态分配的数组
- 无法从 c++ 中的构造函数继承
- 在构造函数继承中使用默认构造函数
- 构造函数继承和直接成员初始化
- C++ - 使用私有参数的构造函数继承
- 通过可变参数模板进行C++11构造函数继承
- C++11构造函数继承和不带参数的构造函数
- C++11 - 构造函数继承
- C++构造函数继承
- 使用 C++11 编译器的构造函数继承正在生成错误
- 选择性构造函数继承"Ambiguous resolution"错误
- 什么是构造函数继承
- C++对象中的构造函数继承与方法继承
- C++构造函数继承没有匹配的函数
- C++构造函数继承(从派生类调用构造函数)
- 模板构造函数继承的标准符合语法是什么
- C++构造函数继承错误