C ++为属性赋值

时间:2015-04-03 12:03:42

标签: c++

这似乎是一个明显的答案..但我试图为我的属性分配一个值。 IE:

class category{
private:
    string _starter;
    string _maincourse;
    string _pudding;
    string _drink;
    string _itemDescription;
    string _price;
public:
    category();
    category(string starter, string maincourse, string pudding, string drinks);
    void display();
    string tostring();
    //Giving value to attributes
    string _starter = "starter";
};

我试图让_starter =" starter"同样适用于主干道等...但是我得到一个错误说"使_starter静态" 。

我也试过做类别(_starter =" starter");这也没用。

2 个答案:

答案 0 :(得分:1)

您可以将初始值作为参数传递给构造函数。

// ...
// constructor:
category
       ( const char * starter
       , const char * maincourse
       , const char * pudding
       , const char * drink
       , const char * itemDescription
       , const char * price
       )
       : _starter(starter)
       , _maincourse(maincourse)
       , _pudding(pudding)
       , _drink(drink)
       , _itemDescription(itemDescription)
       , _price(price)
       {}

此外,您可以使用以下格式为数据项创建访问者函数:

 public:
     string& Starter() { return _starter; } // non-const accessor
     const string& Starter() const { return _starter; } // const accessor.
     // ...

答案 1 :(得分:0)

您无法在类声明中定义成员的值,您需要将其声明为静态并在定义(即.cpp)文件中定义它,或者在构造函数中定义它。