C++访问修饰符(公开,保护,友元)public,protected,friend
时间:2011-05-28 来源:红色康乃馨
我本来不喜欢记笔记,很枯燥无味,记性太差,也只能把这些规则MARK到脑子里了。public在基类前面修饰时,表示公开的和受保护的成员在派生中维持原来的访问级别。protected在修饰基类时,基类中的公开或受保护成员,在派生中的访问级别都是受保护的。 使用friend修饰的方法(该方法不是类的成员方法)或类,友元方法或者友元类可以访问类的非公开方法。友元方法的使用,来自MSDN:
1 // friend_functions.cpp
2 // compile with: /EHsc
3 #include <iostream>
4
5 using namespace std;
6 class Point
7 {
8 friend void ChangePrivate( Point & );
9 public:
10 Point( void ) : m_i(0) {}
11 void PrintPrivate( void ){cout << m_i << endl; }
12
13 private:
14 int m_i;
15 };
16
17 void ChangePrivate ( Point &i ) { i.m_i++; }
18
19 int main()
20 {
21 Point sPoint;
22 sPoint.PrintPrivate();
23 ChangePrivate(sPoint);
24 sPoint.PrintPrivate();
25 } 结果: 0
1 友元方法的声明为:friend 方法签名
习惯了在.NET开发中实现完全的变量封装,我看到直接对私有成员访问,总会让我的目光停留。
相关阅读 更多 +