转换构造函数
- 实现类型的自动转换
- 只有一个参数,而且不是拷贝构造函数的构造函数,一般就可以看作是这玩意
- 编译器也是会自动生成的
class A {
public:
Complex(int i) {}
};
main() {
Complex A a= 2;
a = 9;// 9被自动转换成一个临时A对象
}
析构函数
- 处理对象消亡后的断后工作!
- 对象数组中的每个元素消亡时,每个元素的析构函数都会被调用
delete
```cpp Ctest * pTest = new Ctest; delete pTest; // 调用析构函数
Ctest * pTest = new Ctest[2]; delete []pTest; // 调用两次
<a name="4iYgy"></a>
### 函数返回值时调用
```cpp
class A {
public:
~A() {cout << "called" << endl;}
};
A fun(A obj) { // 临时对象消亡,调用一次
return obj; // 也调用一次
}
int main()
{
obj = fun(obj);
return 0; // 也调用一次
}
// 输出三次