1 类与对象
(1)类是对象的抽象,而对象是类的具体实例。
(2)类就是class之后定义的,用花括号括起来且以分号结尾。
#include <iostream>
using namespace std;
class Box
{
public:
// 公有成员
static double length; // 盒子的长度,成员变量
double breadth = 4.0; // 盒子的宽度,成员变量
double height; // 盒子的高度,成员变量
double volume() { // 盒子的高度,成员函数
return length*breadth*height;
}
Box(); //构造函数
~Box(); //析构函数
protected:
// 受保护成员
private:
// 私有成员
};
double Box::length = 5.0;
Box:Box(void) {
cout<<"create an object"<endl;
}
Box:~Box(void) {
cout<<"destroy an object"<endl;
}
int main() {
cout<< "main function start" << endl;
Box Box1; // 声明类Box的对象Box1
Box Box2; // 声明类Box的对象Box2
// box 1 详述
Box1.height = 3.0;
// box 2 详述
Box2.height = 10.0;
cout << Box1.height << endl;
cout << Box1.length << endl;
cout << Box1.breadth << endl;
cout << Box1.volume() << endl;
cout<< "main function end" << endl;
}
------------------------------
main function start
create an object
create an object
3.0
5.0
4.0
60.0
main function end
create an object
destroy an object
------------------------------
我们定义了一个类,Box。并用类Box定义了2个对象,Box1和Box2。
类Box中的length,height和breadth是类成员变量,volume()是类Box的成员函数。
类中没有指定则默认为private,这个用得少,一般记得加上public就好。
3 构造函数与析构函数
构造函数:
(1)类的构造函数是类的一种特殊的成员函数,名称与类的名称是完全相同的。
(2)构造函数会在每次创建类的新对象时执行。
(3)构造函数不会返回任何类型,也不会返回 void。
(4)默认的构造函数没有任何参数,但如果需要,构造函数也可以带有参数。
这样在创建对象时就会给某些成员变量或对象赋初始值。
析构函数:
(1)类的析构函数是类的一种特殊的成员函数,名称只是在类的名称前加一个"~"。
(2)析构函数会在每次删除所创建的对象时执行。
(3)它不会返回任何值,也不能带有任何参数。
(4)析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。