具有相同名称的类的构造函数继承

Constructor inheritance with classes of the same name

本文关键字:构造函数 继承      更新时间:2023-10-16

我想继承基类的构造函数,但不编译。如何在不更改类名的情况下解决此问题?

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()