由于之前对与C++中的public,private和protected的作用不是很清楚,所以今天专门写了一个程序来研究他们的作用。
#include <iostream>
class BaseClass{
public:
void fun1();
private:
void fun2();
protected:
void fun3();
};
void BaseClass::fun1()
{
std::cout <<"执行函数1";
}
void BaseClass::fun2()
{
std::cout << "执行函数2";
}
void BaseClass::fun3()
{
std::cout << "执行函数3";
}
class MyClass :public BaseClass
{
public:
void fun4();
};
void MyClass::fun4()
{
fun3();
}
int main()
{
BaseClass *baseClass = new BaseClass;
MyClass *myClass = new MyClass;
baseClass->fun1();
myClass->fun4();
//myClass->fun4();//这样是不可以的会报错
//baseClass->fun2();//这样是不可以的会报错
//baseClass->fun3();//这样也不可以同样是报错
getchar();
return 0;
}
从上面的代码中我总结出了以下几点:
- public可以在类外进行访问
- 在类外对成员函数的访问方面,private和protected起着相同的作用–保护。
- public 和 protected 成员函数在类继承中,可以被子类继承
- private成员函数不能够被子类继承
总之,在这三者之中public和private控制着成员变量和成员函数的访问,在这时protected和private
站在一起。
在类继承方面,protected又和public站在一起,可以被子类继承。