C++友元和动态内存

在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操作符在对象销毁时释放内存,避免了内存泄露。

posted @   小徐的小菜园  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示