📅  最后修改于: 2023-12-03 15:29:42.445000             🧑  作者: Mango
在C++中,构造函数是一种特殊的函数,它被用来初始化对象的数据成员。在创建对象时,构造函数会自动调用,确保对象的数据成员得到正确的初始化。
问题12将介绍在C++中如何编写一个带有参数的构造函数来初始化对象的数据成员。
为了编写一个构造函数,您需要在类声明中定义一个公共成员函数,函数名称必须与类名称相同。例如:
class MyClass {
public:
MyClass(); // 默认构造函数
MyClass(int x); // 带参数的构造函数
};
在上面的例子中,我们定义了一个默认构造函数和一个带有int类型参数的构造函数。
接下来,我们需要在类定义中实现带有参数的构造函数。例如,如果我们的构造函数接受一个整数参数并将其存储在数据成员中,我们可以这样实现它:
MyClass::MyClass(int x) {
myInt = x;
}
在上面的代码中,我们使用了成员初始化列表来将构造函数的参数x分配给myInt变量。成员初始化列表使用冒号来分隔,如下所示:
MyClass::MyClass(int x) : myInt(x) {
// 构造函数体
}
在这个例子中,我们使用了相同的方法将参数x赋值给myInt变量。这种写法的优点是可以提高效率,因为成员初始化列表会对数据成员进行初始化,而不是先赋值再初始化。
#include <iostream>
using namespace std;
class Circle {
private:
double radius;
public:
Circle(double r) {
radius = r;
}
double getArea() {
return (3.14 * radius * radius);
}
double getPerimeter() {
return (2 * 3.14 * radius);
}
};
int main() {
Circle c1(5);
Circle c2(7.5);
cout << "Circle 1 area: " << c1.getArea() << endl;
cout << "Circle 1 perimeter: " << c1.getPerimeter() << endl;
cout << "Circle 2 area: " << c2.getArea() << endl;
cout << "Circle 2 perimeter: " << c2.getPerimeter() << endl;
return 0;
}
在上面的示例中,我们定义了一个Circle类,并使用构造函数来初始化圆的半径。然后我们定义了两个圆,并使用它们的方法来计算面积和周长。
带有参数的构造函数是用来初始化对象数据成员的特殊函数。构造函数的名称必须与类名称相同,可以接受任意数量和类型的参数。成员初始化列表可以用来提高效率。