类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。
构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 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):