1、构造方法
类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回void,其中构造函数可以不传参,也可以带参数。构造函数可用于为某些成员变量设置初始值。
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
class Rectangle
{
public:
double getSquare(); // 类成员方法
Rectangle(); // 构造方法1,无参数
Rectangle(double len, double wid); // 构造方法2,有参数
private:
double length; // 类成员属性
double width; // 类成员属性
};
// 定义类方法
double Rectangle::getSquare()
{
return length * width;
}
// 定义无参数构造方法
Rectangle::Rectangle()
{
cout << "hello world" << endl;
}
// 定义有参数构造方法
Rectangle::Rectangle(double len, double wid)
{
length = len;
width = wid;
cout << "length=" << length << " width=" << width << endl;;
}
// 有参数构造方法也可以使用初始化列表形式来写,效果与上面完全一致
/*Rectangle::Rectangle(double len, double wid) :length(len), width(wid)
{
cout << "length=" << length << " width=" << width << endl;
}*/
int main()
{
Rectangle r(25.0, 25.0); // 实例对象1,调用有参数构造方法
Rectangle r1; // 实例对象2,调用无参数构造方法
double square;
square = r.getSquare();
cout << "面积等于:" << square << endl;
return 0;
}
运行结果如下:
length=25 width=25
hello world
面积等于:625
可见,在实例r和r1对象时,分别调用了对应的构造方法。
2、析构方法
类的析构函数是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。
#include "pch.h"
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
class Rectangle
{
public:
double length;
double width;
double getSquare();
Rectangle();
~Rectangle(void);
};
double Rectangle::getSquare()
{
return length * width;
}
// 无参数构造方法
Rectangle::Rectangle()
{
cout << "staring" << endl;
}
// 析构方法
Rectangle::~Rectangle()
{
cout << "ending" << endl;
}
int main()
{
Rectangle r;
r.length = 25.0;
r.width = 25.0;
double square;
square = r.getSquare();
cout << "面积等于:" << square << endl;
return 0;
}
运行结果如下:
staring
面积等于:625
ending
网友评论