【发布时间】:2021-03-14 18:24:37
【问题描述】:
最近,我用 Java 做了很多编程。在那里,你用super(). 调用你继承的类(你可能都知道。)
现在我有一个 C++ 类,它有一个带有一些参数的默认构造函数。示例:
class BaseClass {
public:
BaseClass(char *name); ....
如果我继承了这个类,它会警告我没有合适的默认构造函数可用。那么,C++ 中是否有类似super() 的东西,还是我必须定义一个函数来初始化所有变量?
【问题讨论】:
-
C++ 中没有 super(),部分原因是你可以有多个基类。
-
MSVC 中有
__super关键字。它甚至适用于多个基类,并且仅在存在歧义时才会发出错误。 -
@Ajay 这是一个 MSVC 扩展,而不是标准 c++
-
@VJ,是的,我明确提到了 MSVC。初始下划线表示它不是标准关键字。 :)
-
我会支持它,因为它可能对某人有所帮助,即使那个人不是我。这是一个很好的评论,因为它提供了相关知识。
标签: c++ constructor