C ++错误从构造函数返回值

时间:2015-04-06 13:58:25

标签: c++

我正在尝试让程序仅将所选选项发送到字符串函数。但是,我收到一个错误 -

  

“从构造函数返回值时出错”。

我尝试将其更改为breakstatement,但这将打印“Starter :::: Description:Price”。那就是我想要的。虽然,如果我扩展我的菜单做cater maincourse等,它只会打印“Starter:Maincourse:Drinks:Pudding:Description:Price”。这不是我想要的。

 category::category(){
 _starter = "Starter";
 _maincourse = "MainCourse";
 _pudding = "Pudding";
 _drink = "Drink";
 _itemDescription = "Item Description";
 _price = "Price";


cout << "Menu\n====\n" << endl;
cout << "(1) Starter\n(2) Main Course "
"items\n(3) Pudding.\n(4)Drink\n(5) End program\n" << endl;
cout << "Select: ";
char ch;
cin >> ch;
cin.ignore(100, '\n');
cout << endl;

switch(ch) {
case '1': 
            cout << "Item Description: ";
            getline(cin,_itemDescription);
            cout << "Price: ";
            getline(cin,_price);
return;

}

返回_starter将进入函数tostring()

string category::tostring() {
string record = _starter + ":" + _maincourse + ":" + _pudding + ":"  + _drink + ":" + _itemDescription + ":"+ _price;

2 个答案:

答案 0 :(得分:2)

构造函数和析构函数不能返回任何内容。也许你可以将返回值存储在构造函数所用类的公共属性中,并提供另一个函数来获取该属性。

答案 1 :(得分:0)

构造函数不能返回任何内容(唯一允许的return语句是没有表达式的语句,因此不会向调用者返回任何内容(即return;)。

从构造函数报告错误的常用方法是抛出异常。