类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。
构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。
默认的构造函数没有任何参数,但如果需要,构造函数也可以带有参数。这样在创建对象时就会给对象赋初始值。
//例程:无参构造函数和有参构造函数在创建对象时初始化的使用#include <iostream>#include <cstdio>#include <cmath>using namespace std;class Point{public:Point(){printf("无参构造函数\n");}Point(int x, int y):x(x),y(y){printf("有参构造函数初始化\n");};void show(){printf("Point[x=%d, y=%d]\n", x, y);}void setX(int x){this->x = x;}int getX(){return x;}void setY(int y){this->y = y;}int getY(){return y;}private:int x, y;};class Line{public:Line(Point& p1, Point& p2):p1(p1),p2(p2){};float dist(){return sqrt( (p1.getX()-p2.getX() ) * ( p1.getX()-p2.getX() ) + ( p1.getY()-p2.getY() ) * ( p1.getY()-p2.getY() ) );}private:Point p1, p2;};int main(){Point p1;p1.setX(6);p1.setY(8); //无参构造函数初始化p1.show();Point p2(3, 4); //有参构造函数初始化p2.show();Line line(p1, p2);printf("dist=%f\n", line.dist());}
运行结果(Eclipse):