一、
private:用来指定私有成员。一个类的私有成员,不论是成员变量还是成员函数,都只能在该的成员函数内部才能被访问。
public:用来指定公有成员。一个类的公有成员在任何地方都可以被访问。
protected:用来指定保护成员。
(一)、private:类内可见,子类不可见,类内不写访问修饰符,默认是private
protected:类内以及子类可见
public:类外可见,C++的结构体默认是public
(二)、访问类型继承后
private:(1)父类中的public,protected成员,在子类中为private,降低访问权限
(2)子类private继承后原来属性/方法a全为private,那么再有孙类继承后孙类就不能调用这个属性/方法a
protected:父类中的public成员,在子类中为protected,降低访问权限
public:父类如何子类如何
二、为什么c++类的成员设置为private,但是成员函数设置为public
1、如果成员变量不是public,客户唯一可能访问对象的方法就是通过成员函数
如果public接口内的每样东西都是函数,客户就不需要在打算访问类成员函数时记住是否应该使用()
2、如果你令成员变量为public,每个人都可以读写它
如果你通过函数获得或者设定值,可以实现"不准访问"、“只读访问”、“只写访问”、“读写访问”
三、”隐藏”的作用
设置私有成员的机制叫作“隐藏”。“隐藏”的一个目的就是强制对成员变量的访问一定要通过成员函数进行。这样做的好处是,如果以后修改了成员变量的类型等属性,只需要更改成员函数即可;否则,所有直接访问成员变量的语句都需要修改。
四、C++中父类的虚函数必须要实现吗?
子类继承自父类的虚函数,如果子类自己不实现一遍的话,期待多态时会调用到父类的虚函数实现;若子类实现了父类的虚函数,则期待多态时,就会调用到指针或引用所“指向”的对象其自己的虚函数实现。
五、子类怎么调用父类的成员函数?
1、在子类内部不能调用父类中私有的成员函数,只能调用protected和public的成员函数。
2、在子类外部,子类对象按照继承方式重新给父类成员函数赋予访问权限,此时只有重新赋予的访问权限是public
时,子类对象在类外部才能调用。
#include <iostream>
using namespace std;
class cfather
{
public:
int price;
int quantity;
public:
cfather(int a, int b)
{
price = a;
quantity = b;
}
virtual void fun()
{
}
};
class cson :public cfather
{
int life;
public:
cson(int a,int b,int life1):cfather(a,b)
{
life = life1;
}
void fun()
{
cout << price << endl;
}
};
int main()
{
cfather* op = new cson(12,13,14);
op->fun();
system("pause");
return 0;
}