在类b中我想检查n和m是否大于0然后将它们放入a的构造函数中。我该怎么办?
class a{
private:
int x; int y;
public:
a(int x, int y){
this->x=x; this->y=y;
}
void print(){
cout<<x<<" "<<y<<endl;
}
};
class b:public a{
public:
b(int n,int m):a(){
///
}
};
答案 0 :(得分:1)
必须有一个更优雅的方法,但这是我现在最好的方法。您可以使用ternary operator检查变量,因为它们被传递给this.itemService.getMockItemState(sensor)
.subscribe(status => {
this.currentValues.push(status);
this.checkValues();
});
构造函数的调用。
a
输出结果为:
#include <iostream>
class a
{
private:
int x; int y;
public:
a(int x = 0, int y = 0)
{
this->x = x; this->y = y;
}
void print()
{
std::cout << x << " " << y << "\n";
}
};
class b : public a
{
public:
b(int n,int m) : a(
n > 0 && m > 0 ? n : 0,
n > 0 && m > 0 ? m : 0
)
{
}
};
int main()
{
b B(-1, 1);
B.print();
b B2(1, 1);
B2.print();
b B3(-1, -1);
B3.print();
}
根据您的代码风格标准,这种方法可能不受欢迎,并且没有利用0 0
1 1
0 0
构造函数中的默认值,但它会完成工作,至少在这个简单的例子中。