遗漏知识点:函数默认参数
int fun(int a = 1,int b){}
这里的形参a为函数的默认参数,如果在调用时只传一个实参,则默认a为1.
类的三大基石:继承,封装,多态 ! ! !
关于派生类的访问权限:
继承分为:私有继承,共有继承,保护继承:
我们几乎不使用 protected 或 private 继承,通常使用 public 继承。当使用不同类型的继承时,遵循以下几个规则:
1,公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。,
2,保护继承(protected): 当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。
3,私有继承(private):当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员。
代码演示:
# include<iostream>
# include<string>
/*基类*/
class people
{
public:
int A;
void init(int a,int b,int c) //成员函数
{
A = a;
B = b;
C = c; //基类内部成员函数可以访问所有类成员
}
private:
int B;
protected:
int C;
};
/*公有派生类*/
class p1:public people
{
public:
int A1;
void init(int a1,int b1,int c1)
{
A = a1;
//B = b1; //报错,公有类型派生类不能访问基类私有成员
C = c1;
}
private:
int B1;
protected:
int C1;
};
/*私有派生类*/
class p2:private people
{
publi