我有一些代码可以让我完成,但有些事情对我来说并不熟悉。首先,第一个函数中成员初始值设定项的重点是什么?
class Circle {
private:
double r;
public:
Circle(double radius) : r(radius) {}
double get_perimeter()
{
return 2*PI*r;
}
double get_radius()
{
return get_perimeter()/2*PI;
}
};
然后在我的main()
函数中:
int main()
{
double radius;
cin >> radius;
Circle c(radius);
cout << c.get_radius << endl;
return 0;
}
Circle c(radius);
行对我没有意义。有人可以向我讲述我提到的那几行吗?
答案 0 :(得分:0)
Circle(double radius) : r(radius) {}
成员初始值设定项r(radius)
的目的是初始化成员r
,当然!这一行定义了Circle
的构造函数。构造函数接受类型为double
的参数,并使用该值初始化成员r
。
Circle c(radius);
这声明了一个类型为c
的变量Circle
,并将radius
传递给它的构造函数。将其与std::string str("Foo");
或甚至int x(5);
进行比较 - 这些都是相同的形式。