在c ++中调用类中的函数?

1 c++ class

class CBAY_ITEM
{
public:

    string name = enterName();
    string condition = enterCondition();

};
Run Code Online (Sandbox Code Playgroud)

当我编译时,它会给出4个错误

1.a function call cannot appear in a constant-expression

2.ISO C++ forbids initialization of member 'name'

3.making 'name' static

4.invalid in-class initialization of static data member of non-integral type 'std::string'

我在这做错了什么?

小智 5

您不能在C++ 03中的声明中初始化成员,除非它们是使用常量表达式初始化的静态const成员.常量表达式不能包含C++ 03中的函数调用.

切换到C++ 11(-std=c++11-std=c++0x使用gcc或clang)或初始化CBAY_ITEM构造函数中的成员.如果您有多个执行常见初始化的构造函数,则可以将公共初始化移动到辅助init方法.

class CBAY_ITEM {
  std::string name;
  std::string condition;
public:
  CBAY_ITEM() : name(enterName()), condition(enterCondition())
    {}
};
Run Code Online (Sandbox Code Playgroud)