嵌入式每日八股1.20
构造函数、拷贝构造函数和赋值操作符的区别
构造函数
对象不存在,没用别的对象初始化,在创建一个新的对象时调用构造函数
拷贝构造函数
对象不存在,但是使用别的已经存在的对象来进行初始化
赋值运算符
对象存在,用别的对象给它赋值,这属于重载“=”号运算符的范畴,“=”号两侧的对象都是已存在的
以下是C++中构造函数、拷贝构造函数和赋值操作符的代码示意:
- 构造函数:
class MyClass {
public:
// 默认构造函数
MyClass() {
// 初始化代码
}
// 带参数的构造函数
MyClass(int value) {
// 初始化代码
}
};
// 创建对象
MyClass obj1; // 调用默认构造函数
MyClass obj2(10); // 调用带参数的构造函数
- 拷贝构造函数:
class MyClass {
public:
// 拷贝构造函数
MyClass(const MyClass& other) {
// 复制值的代码
}
};
// 创建对象
MyClass obj1;
MyClass obj2 = obj1; // 调用拷贝构造函数
- 赋值操作符:
class MyClass {
public:
// 赋值操作符
MyClass& operator=(const MyClass& other) {
// 分配新值的代码
return *this;
}
};
// 创建对象
MyClass obj1;
MyClass obj2;
obj2 = obj1; // 调用赋值操作符
【嵌入式八股】精华版 https://www.nowcoder.com/creation/manager/columnDetail/0rOeJm
【嵌入式八股】一、语言篇https://www.nowcoder.com/creation/manager/columnDetail/mwQPeM
【嵌入式八股】二、计算机基础篇https://www.nowcoder.com/creation/manager/columnDetail/Mg5Lym
【嵌入式八股】三、硬件篇https://www.nowcoder.com/creation/manager/columnDetail/MRVDlM
【嵌入式八股】四、嵌入式Linux篇https://www.nowcoder.com/creation/manager/columnDetail/MQ2bb0