
C++ 函数的友元函数
友元函数是一种特殊类型的函数,它可以访问其他类的私有和受保护成员。友元函数通常用于允许外部代码访问通常只能在类中访问的数据或功能。
友元函数的定义
要声明友元函数,请使用关键字 friend,后跟要声明为友元的函数的名称。例如:
立即学习“C++免费学习笔记(深入)”;
class MyClass {
private:
int data;
public:
friend void printMyData(MyClass& obj);
};友元函数的使用
一个功能强大的B2B与B2C的购物平台,除了原本OSC功能外,增加更新的功能: 一、 取消了register_globals必须开启的限制 二、 將HTML程式碼与PHP程式碼完全分离,採用了smarty 樣板引擎 三、 每支档案includes所需函数与资料库连结,使的网页显示速度明显提升 四、 检视、购买商品群组权限设定 五、 十八岁以下禁购机制 六、 折价券购物抵扣机制 七、 礼券购物机制
友元函数可以使用点运算符 (.) 直接访问其他类的私有和受保护成员。例如,在上面的示例中,printMyData 函数可以访问 MyClass 的私有成员 data:
void printMyData(MyClass& obj) {
std::cout << "Data: " << obj.data << std::endl;
}实战案例
考虑以下一个简单示例,演示如何使用友元函数访问私有数据:
#includeclass BankAccount { private: double balance; public: friend void printBalance(const BankAccount&); }; void printBalance(const BankAccount& account) { std::cout << "Balance: " << account.balance << std::endl; } int main() { BankAccount account; account.balance = 1000.0; printBalance(account); return 0; }
输出:
Balance: 1000
注意事项
- 友元函数不应该修改其他类的私有数据,因为这可能会导致不一致的状态。
- 谨慎使用友元函数,因为它们可以绕过类的封装。
- 如果仅需要访问其他类的几个私有成员,请考虑使用访问器方法代替。









