#include <iostream>
using namespace std;
string itmCndtn,itemName;
int strtPrice,sellValue,numRelist,optn=0;
class CBAY_ITEM
{
string enterName();
string enterCondition();
int enterStrtPrc();
int enterSellVal();
};
CBAY_ITEM infoClass;
CBAY_ITEM *nPointer=NULL;
int main()
{
int optionChosen=0;
int strtPrcTemp=0,sellValueTemp=0;
do
{
cout << "\nPlease Enter a Choice From the Menu.\n"<<endl;
cout << "\n1.Add an Item to Selling Queue.\n2.Put Item for Sale.\n3.Show Me the Money.\n4.Exit." << endl;
cin>>optionChosen;
switch(optionChosen)
{
case 1:
{
nPointer=new CBAY_ITEM;
nPointer->enterName()=infoClass.enterName();
nPointer->enterCondition()=infoClass.enterCondition();
nPointer->enterStrtPrc()=infoClass.enterStrtPrc();
nPointer->enterSellVal()=infoClass.enterSellVal();
}
case 2:
{
}
case 3:
{
}
}
}while(optionChosen!=4);
return 0;
}
这是我的代码到目前为止,我省略了类中函数的定义,因为它似乎不是问题所在。当我尝试编译时,编译器显示错误说
lvalue required as left operand of assignment.
我不确定它想说的是什么。
nPointer->enterStrtPrc()=infoClass.enterStrtPrc();
nPointer->enterSellVal()=infoClass.enterSellVal();
应该返回int值并将它们存储在动态创建的类infoClass
中。
答案 0 :(得分:2)
更改您的成员函数以返回引用:
struct CBAY_ITEM
{
string & enterName();
string & enterCondition();
int & enterStrtPrc();
int & enterSellVal();
};
(并且还获得了正确的访问控制权。)
答案 1 :(得分:0)
nPointer-&gt; enterStrtPrc()是一个返回rvalue的表达式。说数字5.你不能分配它 - 它和5=infoClass.enterStrtPrc();
如果您要更改要引用的返回类型,正如@Kerrek SB建议的那样,它将返回存储,您可以在其中放置所需的值。