c++ public,protected, private成员变量或者成员函数访问权限

public 成员变量或者函数,可以通过类的实例对象访问,不管是在类内部还是其他作用域;
protected成员变量或者函数,只能在类内部或者public 或者protedted继承的子类内部访问;
private 成员变量或者函数,只能在类内部访问。
//这里没有阐述友元函数和友元类的情况,如下是上面阐述的实例测试:
#include
using namespace std;
class Base{
protected:
int a;
int b;
void out(){
int c = a + b;
cout << c <<endl;
}
public:
Base(){}
Base(int tempA, int tempB){
a = tempA;
b = tempB;
}
void output(){
int c = a * b;
cout << c <<endl;
}
void testTestOut(){
testOut();
}
private:
void testOut(){
int c = a * b * 2;
cout << c <<endl;
}
};

class Child: public Base{

public:
Child(int tempA, int tempB){
a = tempA;
b = tempB;
}
void printOut(){
out();
}
};

int main() {
cout << “test\n”;

Child* child = new Child(3,2);
child->printOut(); //ok,output is 5
child->output(); //ok, output is 6 
//child->out(); //  error: ‘void Base::out()’ is protected
//child->testOut(); //error: ‘void Base::testOut()’ is private

Base* b = new Base(4, 5);
//b->testOut(); //error: ‘void Base::testOut()’ is private
b->testTestOut(); //ok, output is 40
return 0;

}

如果是友元函数,则允许在友元函数中访问类的所有成员变量和函数;
如果是友元类的话,则允许在友元类中访问类的所有成员变量和函数;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值