如下所示的类声明:
class A{
public:
A(int);
~A()
private:
int a;
};
构造函数定义如下:
A::A(int i){
a = i;
cout << a << endl;
}
我想在main()中做这样的事情:
int main(){
int i;
//user input for value
//stored inside i
cout << "The value is " << A obj(i);
return 0;
}
我现在在main()中得到以下错误的错误:
错误:&#39; A&#39;不引用值
此错误的原因是什么?
答案 0 :(得分:1)
您无法声明obj
并将其输出到同一行。如果您希望obj
在打印后仍然可用,请执行以下操作:
A obj(i);
cout << "The value is " << obj;
否则,请跳过obj
以支持临时对象:
cout << "The value is " << A(i);
答案 1 :(得分:1)
你不能在另一行的中间声明。
} ,然后将其发送到
(A) i
。然后直接丢弃临时A对象。
如果你想保留它,你必须在它自己的声明中声明它的名称。
答案 2 :(得分:0)
您需要先在第一个代码行输出消息“值为”。在第二个代码行上,您将创建A类型的对象obj,它将输出i。
int main()
{
int i;
cout << "The value is ";
A obj(i);
return 0;
}