版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/clksjx/article/details/88850535
《面向对象程序设计C++——网易云课堂,翁恺》
操作权限
public: 所有对象均可访问。
private: 只有这个类的成员函数可以访问。
(同一个类的不同对象之间可以互相访问私有变量)
protected: 只有这个类以及子孙类可以访问。
互相调用
struct X;//前向声明
struct Y{
void f(X*);
}
struct X{//X的定义
private:
int i;
public:
friend void g(X*, int);
friend void Y::f(X*);//通过friend授权Y中的f()函数对X中的private变量i具有访问权限
friend struct Z;//z的所有成员函数均可访问i
}
由于Y的定义仅需要X,而X的定义需要Y的具体函数,所以需要将X的前向声明,而不是Y的前向声明。
class与struct的区别
缺省访问权限时,class默认是private,struct默认是public。
在c++中,首选class进行编程。当结构仅是元素组合时,可以考虑使用struct。