public protected private继承访问权限—C++
2015-10-22 15:08
295 查看
class Animal //父类
{
public:
void eat(){
cout<<"animal eat"<<endl;
}
protected:
void sleep(){
cout<<"animal sleep"<<endl;
}
private:
void breathe(){
cout<<"animal breathe"<<endl;
}
};
class Fish:public Animal //子类
{
public:
void test(){
eat(); //此时eat()的访问权限为public,在类内部能够访问
sleep(); //此时sleep()的访问权限为protected,在类内部能够访问
breathe(); //此时breathe()的访问权限为no access,在类内部不能够访问
}
};
int main(void){
Fish f;
f.eat(); //此时eat()的访问权限为public,在类外部能够访问
f.sleep(); //此时sleep()的访问权限为protected,在类外部不能够访问
f.breathe() //此时breathe()的访问权限为no access,在类外部不能够访问
}
public:可以被任意实体访问
protected:只允许子类及本类的成员函数以及本类的友元函数访问,理解为 子女和朋友和自己能访问
private:只允许本类的成员函数访问
在类内部:只要不是no access,那么我们都可以访问该成员。也就是说类内部的访问权限比较松,凡是可访问的权限都能访问,不论是public、protected还是private。
在类外部:只要不是public,那么我们都不可以访问该成员。也就是说在类的外部访问权限比较严格,只要访问权限不是public的成员,在类外部都不能访问它。
{
public:
void eat(){
cout<<"animal eat"<<endl;
}
protected:
void sleep(){
cout<<"animal sleep"<<endl;
}
private:
void breathe(){
cout<<"animal breathe"<<endl;
}
};
class Fish:public Animal //子类
{
public:
void test(){
eat(); //此时eat()的访问权限为public,在类内部能够访问
sleep(); //此时sleep()的访问权限为protected,在类内部能够访问
breathe(); //此时breathe()的访问权限为no access,在类内部不能够访问
}
};
int main(void){
Fish f;
f.eat(); //此时eat()的访问权限为public,在类外部能够访问
f.sleep(); //此时sleep()的访问权限为protected,在类外部不能够访问
f.breathe() //此时breathe()的访问权限为no access,在类外部不能够访问
}
public:可以被任意实体访问
protected:只允许子类及本类的成员函数以及本类的友元函数访问,理解为 子女和朋友和自己能访问
private:只允许本类的成员函数访问
在类内部:只要不是no access,那么我们都可以访问该成员。也就是说类内部的访问权限比较松,凡是可访问的权限都能访问,不论是public、protected还是private。
在类外部:只要不是public,那么我们都不可以访问该成员。也就是说在类的外部访问权限比较严格,只要访问权限不是public的成员,在类外部都不能访问它。
相关文章推荐
- C++STL之堆栈容器
- C++STL之bitset位集合容器
- C++ builder 使用TZipForge组件解压/压缩
- c++常用的字符串操作函数
- C语言的枚举类型
- C++各大有名科学计算库(转)
- c++虚拟函数virtual
- 黑马程序员——OC语言日志——description方法介绍及重写
- C++第十一课 指针
- 值得推荐的C/C++框架和库
- KMP算法的C语言实现
- C++多态的实现原理
- C++浅拷贝、深拷贝及引用计数浅析
- C语言字符串操作常用库函数
- C语言---volatile(我的工程笔记本)
- C语言整理-4
- C语言整理-3
- C语言整理-2
- C语言整理-1
- C语言编写遗传算法解决TSP旅行商问题