第七张的内容,捋一下思路和知识点。
一,继承
类的继承计就是新的类从已经存在的类哪里或得的特性。
原有的类产生新类,新类包含了原有类的特征,并且也加入了新的东西。
基类/父类:就是原有的类
派生类/子类:是指新生成的类
二,派生类的定义
class 派生类名:继承方式 基类名1,继承方式.......
{
派生类成员声明;
};
class Derived:public Base1,private Base2
{
public:
Derived();
~Derived();
};
派生类为Derived,基类为Base1 Base2
多继承就是有很多个基类
单继承就是只有一个基类
累的继承方式有公有继承,保护继承,私有继承。
三,公有继承
基类的共有成员,保护成员访问属性不变,私有成员不可以直接访问。
就是继承基类的。。。
class Point{ //point类的定义 ,,基类
public: //类里面的公有函数成员
void initPoint(float x=0,float y=0){this->x=x;this->y=y;}
void move(float offX,float offY){x+=offX;y+=offY;}
float getX()const{return X;}
float getY()const{return Y;}
private: //私有数据
float x,y;
};
class Rectangle:public Point{ //派生类的定义 ,,派生类
public:
void initRectangle(float x,float y,float w,float h){
initPoint(x,y); //调用基类公有成员函数
this->w=w;
this->h=h;
}
float getH() const{return h;}
float getW() const{return w;}
private: 、、新增加的私有数据成员
float w,h;
};
四,类型兼容性规则
兼容性规则是指,在需要基类对象的任何地方,可以使用公有派生类的对象来替换,替换之后派生类对象可以作为基类使用,但只能从基类继承成员。
ptr->display(); //对象指针->成员名 = 对象名.成员名
五,派生类的构造函数和析构函数
调用基类构造函数,调用顺序按照他们被继承的顺序
对于派生类新增的成员对象初始化,调用顺序按照他们在类中声明顺序
而平常的构造函数时:
Clock(int newH,int newM,int newS) 直接类名然后+参数表
派生类的构造函数的形式如下:
派生类名::派生类名(参数表):基类名1(基类1初始化参数表),....,成员对象名1(成员对象初始化参数表)
{
派生类构造函数的其他初始化操作
}
派生类构造函数名与类名相同
:: 限定要访问的成员所在类的名称
类名::成员名 //数据成员
类名::成员名(参数表) //函数成员
第三章
一,函数定义
类型说明符 函数名(形式参数表)
{
函数体
}
double power(double x,int n)
{
double val=1.0;
while(n--)
val*=x;
return val; //计算x的n次方
}
二,函数的调用
类型说明符 函数名(形参表)
可以作为一个表达式出现 power(5,2) 求5的2次方
fun 是函数用来调用的函数名,嵌套
unsigned 是来定义无符号数,作用为存储的数据比较大,和double,int类似
fac 是求阶乘的函数
display是打印函数
virtual是虚函数 就是实现对基类函数的覆盖
staist函数是固定值函数,将哪一个值固定不变
三,函数的参数传递
分为值传递,和,引用传递
值传递就是形参值得变化
引用传递是实参值发生改变
实参是调用函数后的变量称为实参
形参是定义时函数的变量称为形参
声明引用时必须同时对他初始化,使他指向另一个已经存在的变量
一旦一个变量被引用后,不能改指其他变量。
void swap(int a,int b){
int t=a;
a=b;
b=t;
}
int main()
{
int a=5,b=10;
swap(x,y)
cout<<"x="<<x<<"y="<<endl;
return 0;
}
输出 x=5,y=10
void swap(int &a,int &b){
int t=a;
a=b;
b=t;
}
int main()
{
int a=5,b=10;
swap(x,y)
cout<<"x="<<x<<"y="<<endl;
return 0;
}
输出 x=10,y=5;
四,带默认形参值的函数
有默认形参值的形参必须在形参列表的最后
int add(int x,int y,int z=9)
五,函数重载
就是具有相同的函数名,系统会自动判断调用哪一个函数。
重载函数的形参必须不同,个数不同,或者类型不同
六,简单指针
int *p 声明指针
cout<<*p 输出指针所指的内容
int &rf 声明一个int型的引用
*ap=&b 将b的地址赋给ap
第八章
一,多态性
是指同样的消息被不同类型接收时导致不同的行为
二,运算符重载
是对已有的运算符赋予多重含义,是同一个运算符作用于不同类型数据是导致不同的行为。
成员函数
返回类型 operator 运算符(形参表)
{
函数体
}
非成员函数
返回类型 operator 运算符(形参表)
{
函数体
}
三,虚函数
1,虚函数声明
virtual