-1 c++
考虑这个链接.看到这段代码:
class MyClass
{
public:
MyClass();
~MyClass();
private:
int _a;
};
MyClass::MyClass()
{
}
MyClass::~MyClass()
{
}
Run Code Online (Sandbox Code Playgroud)
我们可以在类中声明构造函数.
为什么我可以在类中声明构造函数以及为什么要这样做?
Pie*_*aud 14
你不能在类中声明构造函数.你在谈论构造函数定义.
class MyClass
{
public:
MyClass(); // declaration
};
MyClass::MyClass() // definition
{
}
Run Code Online (Sandbox Code Playgroud)
你应该读这个.
您应该在类外部定义构造函数的主要原因是为了提高可读性.在Header文件中声明您的类并在源文件中定义它更清楚.您可以将此规则应用于您班级的任何成员.
标准的一点引用:
12.1构造函数
struct S {
S(); // declares the constructor
};
S::S() { } // defines the constructor
Run Code Online (Sandbox Code Playgroud)
你不能.这是构造函数声明,它必须在类定义中:
// MyClass definition, possibly in .h file
class MyClass
{
public:
MyClass(); // default constructor declaration
...
};
Run Code Online (Sandbox Code Playgroud)
这是构造函数的定义
// MyClass default constructor definition, possibly in .cpp file
MyClass::MyClass() { }
Run Code Online (Sandbox Code Playgroud)
你所指的是构造函数的定义.您可以在类定义之外定义它,以允许您将一个与另一个解耦.通常这意味着您将类定义放在头文件中,由客户端代码包含,并将构造函数定义(以及其他类成员函数定义)放在要编译的实现文件中.这样,代码的用户对所述定义没有编译时依赖性.