具有成员初始化列表的构造方法定义

时间:2014-11-09 15:29:54

标签: c++

我有一些代码可以让我完成,但有些事情对我来说并不熟悉。首先,第一个函数中成员初始值设定项的重点是什么?

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);行对我没有意义。有人可以向我讲述我提到的那几行吗?

1 个答案:

答案 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);进行比较 - 这些都是相同的形式。