【发布时间】:2016-07-27 06:46:23
【问题描述】:
我正在尝试使用三元运算符创建一个对象,但每次都只调用第一个。这是我的简单代码:
bool itTrue(int x, int y){
if(x>y)
return true;
return false;
}
class myClass {
public:
myClass(int x){
val=x;
}
myClass(int x, int y){
val=x*y;
}
val=0;
};
int main(){
aa=5;
bb=6;
myClass cc = isTrue(aa,bb) ? (aa,bb) : (bb,bb);
cout<<cc.val<<endl;
return 0;
}
使用调试器,在调用 isTrue 函数之后,被调用的构造函数是使用一个对象的构造函数:
myClass(int x)
但我想同时使用这两个参数,如何调用另一个参数:
myClass(int x, int y) 使用三元运算符?
【问题讨论】:
-
您即将了解逗号运算符。什么是“短如果”?
-
提供合适的拷贝构造函数并写
myClass cc = isTrue(aa,bb) ? myClass(aa,bb) : myClass (bb,bb); -
我应该忽略复制构造函数并按照你说的那样写吗?还是我必须实现它?
-
@raptor0102 它被称为“三元运算符”而不是“短 if”。
-
它的工作!谢谢!
标签: c++ constructor ternary-operator