在C++中,友元机制允许一个类将其非公有成员的访问权限授予指定的函数或者类。然而,滥用友元会破坏封装性,导致可维护性和安全性问题。
动态内存指的是在程序运行时分配和释放内存,通常通过使用new和delete操作符在C++中管理。
下面是一个简单的例子,展示了如何在类中使用友元函数来访问私有数据成员,并使用动态内存分配来管理对象。
include
class MyClass {
int* data;
friend void printData(MyClass* obj); // 声明友元函数
public:
MyClass(int value) {
data = new int(value); // 使用new分配动态内存
}
~MyClass() {
delete data; // 对象销毁时释放内存
}
};
void printData(MyClass* obj) {
std::cout << *(obj->data) << std::endl; // 使用友元函数访问私有数据成员
}
int main() {
MyClass myObj(10);
printData(&myObj); // 输出: 10
return 0;
}
在这个例子中,printData函数是MyClass的友元,可以访问MyClass对象的私有数据成员data。同时,MyClass的构造函数使用new操作符为data分配了动态内存,析构函数则使用delete操作符在对象销毁时释放内存,避免了内存泄露。
标签:友元,int,C++,动态内存,MyClass,data From: https://www.cnblogs.com/xujiangsu/p/18211359