重载左移运算符访问私有成员失败
时间: 2024-01-01 20:09:47 浏览: 68
重载左移运算符可以访问类的私有成员,但需要在类的内部声明该函数为友元函数,否则会访问失败。友元函数可以访问类的私有成员,但不是类的成员函数。需要在类中声明友元函数的方式如下:
```
class MyClass {
public:
// 友元函数声明
friend ostream& operator<<(ostream& os, const MyClass& obj);
private:
int myPrivateMember;
};
// 友元函数定义
ostream& operator<<(ostream& os, const MyClass& obj) {
os << obj.myPrivateMember;
return os;
}
```
在这个例子中,重载了左移运算符并声明了该函数为 `MyClass` 的友元函数。在函数中,可以访问 `MyClass` 的私有成员 `myPrivateMember`。
阅读全文