c++ - "class"在构造函数中意味着什么?

标签 c++ class constructor

我看到了这个构造函数:

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/

相关文章:

c++ - 通过基类的指针我们不能访问派生类的特定成员

javascript - 如果类列表包含多个特定类

java - 以编程方式打印类直方图

c++ - 枚举类与枚举或类有何相似之处?

c++ - C++中实例变量的算法初始化

c++ - 为二维数组动态分配内存时出错

C++/CX ^ 与 &

java - 在 Java 中运行构造函数代码之前是否初始化了字段?

c++ - c++ 中的 get() 和 getline() 对换行符的处理方式不同吗?

javascript - 在 javascript 中丢失了 "constructor.name"的输出