类/成员函数错误

Class/member function error

本文关键字:错误 函数 成员      更新时间:2023-10-16

我这里有这段代码:

class physics_vector
{ 
public:
    double direction, magnitude;
    int dir_mag(double dir, double mag) :direction(dir), 
        magnitude(dir) {return 0; };
};
int dir_mag(double dir, double mag)
{
    cout << "Direction: " << dir << 'n';
    cout << "Magnitude: " << mag << 'n';
    return 0;
}

每当我尝试编译时,我都会收到错误,

13:39: error: only constructors take member initializers

请帮忙吗?

此函数:

int dir_mag(double dir, double mag) :direction(dir), magnitude(dir)
{return 0; };

正在使用初始值设定项列表 ( :direction(dir), magnitude(dir) ),这仅适用于构造函数。如果您计划将其作为构造函数,则类应如下所示:

class physics_vector
{ 
public:
    double direction, magnitude;
    physics_vector(double dir, double mag) :direction(dir), 
        magnitude(dir) {};
};

这将编译。请注意,不允许从构造函数返回值,它们也没有返回类型。

不能在函数中使用初始值设定项列表。它在C++中不是有效的操作。只能将初始值设定项列表与构造函数一起使用。编译器给出了非常明显的错误。