快要考试了。临时抱一抱佛脚,希望有用。
一,抽象
是对具体的东西进行概括,将里面共同的一些性质描述的过程。
int hour,minute,second
string name,string sex,int age
eat(),walk(),study() //这是用函数的方法表示的
二,封装
就是将刚才抽象的东西和行为(功能)【行为指的是函数成员】相结合,意思就是将数据和能进行功能的代码相结合。最后形成类
class clock//类名
{
public: //外部接口
void setTime(int newH,int newM,int newS) //行为,代码成员
void setTime();
private: //特定的访问权限
int hour,minute,second; //属性,数据成员
};
三,继承
就是在原有的基础上可以进行更改,然后被下面进行使用。
四,多态
书上讲的是,多态性是指一段程序能够处理多种类型对象的能力。
多态性,可以包括,强制多态,重载多态,类型化参数多态,包含多态 这四种。
五,类的定义
class 类的名称
public:
外部接口,外部接口就是别人可以从这里使用功能,却不知道里面是啥
protected:
保护成员
private:
私有成员
六,对象
简单的话来说 比如将钟表定义成一个类,那么每一个组成钟表的hour,minute,second,都是一个对象。
类名 对象名
Clock myclock //先声明了一个类的一个对象
访问这个对象的成员
对象名.成员名
myclock.showtime
七,类的成员函数
成员函数指的是,在类中描述类的行为的一种函数,就像是Clock这个类里面的一个showTime()一样,实现的是类里面的一个显示时间的功能。
1.成员函数的实现
实现成员函数的时候要指明类的名称
::
返回值(viod为无返回值) 类名::函数成员名 //void Clock::showTime(内容)
{
函数体
}
和普通的函数不一样,成员函数需要用类的名称来限制
2.成员函数调用中的目的对象
在成员函数中调用其他对象是 要用“.”。
myClock.showTime() //myClock指得是目的对象。 showTime是成员函数。
3,带默认形参值的成员函数
调用规则和普通函数相同。
调用就是 返回类型 函数名
没有返回值的时候,直接写函数名就可以调用。
有返回值的时候就是,以值的形式出现在表达式中。
4,内联函数
就是被频繁使用,且代码简单的函数。
有两种形式,第一:将函数放在类里,
将showTime作为内联函数
class Clock{
public:
void setTime(int newH,int newM,int newS);
void showTime(){
cout<<hour<<":"<<minute<<":"<<second<<endl; //内联函数的第一种方式
}
private:
int hour,minute,second;
第二种就是将内联函数放在成员函数体现的下面,就是外面。
inline void Clock::showTime(){ //内联函数的第二种方式
cout<<hour<<":"<<minute<<":"<<second<<endl;
}
八,构造函数
是解决c++的初始化,就是讲对象初始化为一个特定的状态,属于类的成员函数。简单来说,就是将一个函数设一个初始化的值
构造函数的函数名和类名相同,没有返回值。
建立构造函数:
class Clock{
public:
Clock(int newH,int newM,int newS); //构造函数
void setTime(int newH,int newM,int newS);
void showTime();
private:
int hour,minute,second;
Clock(int newH,int newM,int newS); //构造函数 就是设置了一个初始值
实现构造函数:(因为他是成员函数,属于和成员函数的调用方法一样)
Clock::Clock(int newH,int newM,int newS){
hour=newH;
minute=newM;
second=newS;
}
用构造函数时会实现下面的程序
int main(){
Clock c(0,0,0)
c.showTime();
c.setTime(8,30,30);
return 0;
}
九,复制构造函数
功能:就是将每个数据的成员数据都复制到新建立的对象中
他的实现和构造函数一样。
class 类名
{
public:
类名(); //建立构造函数
类名(类名&对象名) //建立复制构造函数
};
类名::类名【成员函数名和类名一样】(){
函数体 //构造函数的实现
}
类名::类名(类名&对象名){
函数体 //复制构造函数的实现
}
总体关系:类包含对象,对象包含成员,成员又有成员函数。
在三种情况下复制构造函数会被调用
1,
2,
3,
十,析构函数
工作是进行对象被删除前的清理工作。
类名名称前加~,没有返回值。
class Clock{
public:
Clock(); //构造函数
void setTime();
void showTime();
~Clock(){} //析构函数
private:
int hour,minute,second;
};