[英]What does “class” mean in a constructor?
我看到了这个构造函数:
MyClass(class MyOtherClass* = 0) {}
class
关键字是什么意思? 构造函数是否采用MyOtherClass
指针并将参数默认为空指针?
这是一个前瞻性声明。 在此上下文中使用之前不必定义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
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.