C++ 请帮我举例多种构造函数的使用方式
时间: 2024-12-25 21:33:49 浏览: 3
C++ 构造函数是一种特殊成员函数,用于初始化新创建的对象。它在对象被声明时自动调用,主要用于设置对象的初始状态。这里有几种常见的构造函数使用方式:
1. **无参构造函数**:
```cpp
class MyClass {
public:
MyClass() {} // 默认构造函数,如果没有显式定义,编译器会提供一个空的默认版本
};
```
2. **带参数的构造函数**:
```cpp
class Person {
private:
std::string name;
int age;
public:
Person(const std::string& name, int age) : name(name), age(age) {} // 使用初始值列表初始化属性
};
```
3. **构造函数链**:
如果一个类有多个基类,可以使用构造函数链(Constructor Chaining)确保每个基类都被正确初始化:
```cpp
class DerivedClass : public BaseClass1, public BaseClass2 {
public:
DerivedClass(int value) : BaseClass1(value), BaseClass2(value * 2) {} // 先调用BaseClass1,再调用BaseClass2
};
```
4. **复制构造函数**:
```cpp
class MyClass {
public:
MyClass(const MyClass &other) { // 深度或浅拷贝,这里省略了实际内容
name = other.name;
}
private:
std::string name;
};
```
5. **移动构造函数**(C++11及以上):
对于资源密集型对象,可以使用move semantics:
```cpp
class MyClass {
private:
std::unique_ptr<int> ptr;
public:
MyClass(MyClass &&other) noexcept : ptr(std::move(other.ptr)) {} // 移动数据而不是复制
};
```
阅读全文