c++构造函数需要在类的声明时指出吗
时间: 2023-08-13 10:02:26 浏览: 43
在 C++ 中,声明一个类时可以定义一个或多个构造函数,但不需要在类的声明中指定构造函数的实现。相反,你需要在类的定义中提供构造函数的实现。
在类的定义中,你可以声明一个或多个构造函数,并且可以使用不同的形式来定义它们。你可以定义一个无参构造函数,也可以定义一个或多个带有参数的构造函数。如果你没有定义任何构造函数,则编译器会自动生成一个默认构造函数。
例如,假设你有一个名为 `Person` 的类,你可以在类的定义中定义一个无参构造函数和一个带有参数的构造函数,如下所示:
```cpp
class Person {
public:
Person(); // 无参构造函数
Person(std::string name, int age); // 带参数的构造函数
private:
std::string name;
int age;
};
```
在类的定义之外,你需要提供构造函数的实现。例如,你可以像下面这样提供一个无参构造函数的实现:
```cpp
Person::Person() {
name = "Unknown";
age = 0;
}
```
同样地,你可以提供一个带有参数的构造函数的实现:
```cpp
Person::Person(std::string name, int age) {
this->name = name;
this->age = age;
}
```
需要注意的是,在 C++ 中,构造函数可以被重载,所以你可以定义多个不同的构造函数,以便支持不同的对象初始化方式。