我看到了这个构造函数:
MyClass(class MyOtherClass* = 0) {}
class
关键字是什么意思?构造函数是否采用 MyOtherClass
指针并将参数默认为空指针?
最佳答案
这是一个前向声明。 MyOtherClass
在此上下文中使用之前不必定义,因此前向声明就足够了。 =0
是参数的默认值。
不需要完整定义的情况的头脑转储:
- 成员(member)指南
- 成员推荐
- 方法参数类型
- 方法返回类型
比较以下内容:
//MyClass.h
class MyClass
{
MyClass(MyOtherClass* = 0) {} //doesn't compile
//doesn't know what MyOtherClass is
};
//MyClass.h
class MyClass
{
MyClass(class MyOtherClass* = 0) {} //compiles, MyOtherClass is declared
};
//MyClass.h
class MyOtherClass; //declare MyOtherClass
class MyClass
{
MyClass(MyOtherClass* = 0) {} //compiles, declaration available
};
关于c++ - "class"在构造函数中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12821956/