“类”在构造函数中意味着什么?

时间:2012-10-10 14:34:32

标签: c++ class constructor

我看到了这个构造函数:

MyClass(class MyOtherClass* = 0) {}

class关键字是什么意思?构造函数是否采用MyOtherClass指针并将参数默认为空指针?

1 个答案:

答案 0 :(得分:10)

这是一个前瞻性声明。在此上下文中使用之前不必定义MyOtherClass,因此前向声明就足够了。 =0是参数的默认值。

您不需要完整定义的案例的题库:

  • 成员指针
  • 会员参考
  • 方法参数类型
  • 方法返回类型

比较以下内容:

//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
};