药材网技术网站建设,东莞今天新增加的情况,微网站建设加盟,东莞全网合一网站类与对象的基本概念
CLASS类将数据以及数据上的操作封装在一起 OBJECT对象是有具体类类型的变量 打个比方#xff0c;类就像一个制作月饼的摸具#xff0c;那么我们可以通过这个摸具来放入面粉和馅料编程一个月饼#xff0c;那么摸具就是类#xff0c;而各种各样的月饼便是…类与对象的基本概念
CLASS类将数据以及数据上的操作封装在一起 OBJECT对象是有具体类类型的变量 打个比方类就像一个制作月饼的摸具那么我们可以通过这个摸具来放入面粉和馅料编程一个月饼那么摸具就是类而各种各样的月饼便是对象
类的定义
类是对一群具有相同属性和相同行为的对象的描述 我们来构造一个圆形的类 构造类最重要的就是数据和操作所以我们圆的类需要数据半径操作计算周长函数和计算面积的函数 在代码中类的格式如下
class 类名称
{privete只允许类中访问public公有成员外部可访问protected保护性成员与继承相关
}//eg时钟类有设置时间和时间展示两个操作
class clock
{priveteint hourminutesecondpublicvoid setTime(int newH,int newM,int newS);void showTime();
}成员函数
上述的时钟类的函数我们称之为成员函数我们刚刚只进行了声明但是还没有具体定义函数里的内容是什么 下面的代码将会补充上并且在主函数里创建对象以及使用对象的成员函数
//eg2-2时钟类有设置时间和时间展示两个操作
class clock
{priveteint hourminutesecondpublicvoid setTime(int newH,int newM,int newS);void showTime();
}
void clock::setTime(int newH,int newM,int newS){hour newH;minute newM;second newS;
}
void clock::showTime(){couthour:minute:secondendl
}
int main(){clock myClock; //定义对象myClock.setTime(20,39,20);myClock.showTime();return 0;
}构造函数
构造函数是一个特殊的成员函数主要用在对象的初始化
//eg2-3时钟类重点注意与构造函数
class clock
{priveteint hourminutesecondpublicclock(int newH,int newM,int newS);//声明构造函数void setTime(int newH,int newM,int newS);void showTime();
}
//构造函数推荐写法
clock::clock(int newH,int newM,int newS){hour newH;minute newM;second newS;
}
//c成员列表实现方法更加简洁
//clock::clock(int newH,int newM,int newS):hour(newH),minute(newM),second(newS);{}
void clock::setTime(int newH,int newM,int newS){hour newH;minute newM;second newS;
}
void clock::showTime(){couthour:minute:secondendl
}
int main(){clock c(0,0,0); //定义对象c.showTime();return 0;
}析构函数
析构函数与构造函数的恰好相反它对对象撤销的时候起到了清理的作用 例如在建立对象的时候调用了new开辟了一片内存空间析构函数就是调用delete释放内存
//eg2-4
#include iostream
using namespace std;
class Democlass{public:Democlass(int i);~Democlass();
}
Democlass::Democlass(int i){coutInitial value isiendl;
}
Democlass::~Democlass(){coutdestructorendl;
}
void main(){Democlass obj(30);coutThis is the end main()endl;return;
}
运行结果
Initial value is 30
This is the end main()
destructor构造函数重载
eg2-2没有定义构造函数为啥程序能够运行 见构造函数特点第五点会自动生成无参构造函数 eg2-3: 这个例子用clock c语句创建clock对象是否成功? 不能如果有构造函数不会自动生成无参构造函数需要我们自己定义 通过函数重载来实现
//eg2-3时钟类重点注意与构造函数
class clock
{priveteint hourminutesecondpublicclock(int newH,int newM,int newS);//声明构造函数void setTime(int newH,int newM,int newS);void showTime();
}
//无参构造函数
clock::clock(int newH,int newM,int newS):hour(1),minute(1),second(1);{}
//构造函数
clock::clock(int newH,int newM,int newS){hour newH;minute newM;second newS;
}
void clock::setTime(int newH,int newM,int newS){hour newH;minute newM;second newS;
}
void clock::showTime(){couthour:minute:secondendl
}
int main(){clock myclock1;myclock1.showTime();clock myclock2(8,3,30); //定义对象c.showTime();return 0;
}默认构造函数