c++ 构造析构友元函数
时间: 2023-10-01 17:02:24 浏览: 113
C++课件——构造函数 友元
在C++中,构造函数和析构函数是用来创建和销毁对象的特殊成员函数。构造函数在对象被创建时调用,而析构函数在对象被销毁时调用。
构造函数具有以下特点:
1. 构造函数的名称与类名称相同。
2. 构造函数没有返回类型,包括void。
3. 构造函数可以有参数,也可以没有参数。
4. 构造函数可以重载,即同一个类可以有多个不同参数的构造函数。
析构函数具有以下特点:
1. 析构函数的名称与类名称相同,在前面加上波浪号(~)。
2. 析构函数没有返回类型,包括void。
3. 析构函数不接受任何参数。
友元函数是一个在类外部定义的非成员函数,但它可以访问类的私有成员和保护成员。友元函数可以是类的成员函数,也可以是全局函数。友元函数的声明必须在类的内部,但定义可以在类的内部或外部。
友元函数可以在类中声明为友元函数,以便能够访问类的私有成员和保护成员。友元函数的声明可以放在类定义中的任何地方。例如:
```cpp
class MyClass {
private:
int privateVar;
public:
MyClass();
~MyClass();
friend void friendFunc(MyClass obj);
};
void friendFunc(MyClass obj) {
// 可以访问MyClass的私有成员和保护成员
cout << obj.privateVar << endl;
}
MyClass::MyClass() {
privateVar = 10;
}
MyClass::~MyClass() {
// 在析构函数中调用友元函数
friendFunc(*this);
}
```
在上面的示例中,`friendFunc`是`MyClass`的友元函数,并且可以访问`MyClass`的私有成员`privateVar`。在析构函数中,我们调用了友元函数`friendFunc`并将当前对象作为参数传递给它。
请注意,这只是一个简单的示例用于说明构造函数、析构函数和友元函数的概念,实际应用中可能会有更复杂的情况和用法。
阅读全文