C++学习, 类的构造函数
C++类构造函数是类的特殊的成员函数,它在创建对象时自动调用,用于初始化对象。构造函数的名称与类的名称是完全相同的,不会返回任何类型,也不会返回 void。构造函数的主要目的是给对象的数据成员赋初值。
构造函数的特点
- 构造函数名与类名相同
- 无返回类型
- 可以重载:一个类可以有多个构造函数,只要它们的参数列表不同。
- 自动调用:当创建类的对象时,会自动调用构造函数。
- 默认构造函数:如果没有为类定义任何构造函数,编译器会自动生成一个默认构造函数,该构造函数不接受任何参数且不做任何操作。一旦定义了构造函数,编译器就不会再自动生成默认构造函数。
无参数构造函数,示例:
#include <iostream>
using namespace std;
class MyClass {
private:
int x;
public:
// 无参数构造函数
MyClass() : x(0) {
cout << "Object is being created" << endl;
}
void display() const {
cout << "x = " << x << endl;
}
};
int main() {
MyClass obj;
// 调用display成员函数来显示x的值
obj.display();
return 0;
}
带参数的构造函数,示例:
#include <iostream>
using namespace std;
class Line
{
public:
void setLength( double len );
double getLength( void );
Line(double len); // 构造函数
private:
double length;
};
// 构造函数
Line::Line( double len)
{
cout << "Object is being created, length = " << len << endl;
length = len;
}
void Line::setLength( double len )
{
length = len;
}
double Line::getLength( void )
{
return length;
}
int main( )
{
Line line(8.0);
cout << "Length of line : " << line.getLength() <<endl;
line.setLength(18.0);
cout << "Length of line : " << line.getLength() <<endl;
return 0;
}