我正在尝试让程序仅将所选选项发送到字符串函数。但是,我收到一个错误 -
“从构造函数返回值时出错”。
我尝试将其更改为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;
答案 0 :(得分:2)
构造函数和析构函数不能返回任何内容。也许你可以将返回值存储在构造函数所用类的公共属性中,并提供另一个函数来获取该属性。
答案 1 :(得分:0)
构造函数不能返回任何内容(唯一允许的return
语句是没有表达式的语句,因此不会向调用者返回任何内容(即return;
)。
从构造函数报告错误的常用方法是抛出异常。