C++ 十二课 访问限制

版权声明:本文为博主原创文章,未经博主允许不得转载。 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。

猜你喜欢

转载自blog.csdn.net/clksjx/article/details/88850535