class foo{
public:
double v1, v2, v3;
double x, y;
foo(const double &a){
set_var();
x = a;
if(a == v1)
y = 1;
else if(a == v2)
y = 0;
else if(a == v3)
y = 2;
}
void set_var(){
// v1, v2 and v3 will always be the same values as the corresponding double values
// that foo a,b and c are being set to in main()
v1 = 1.4;
v2 = 1.4;
v3 = 1.4;
}
};
そして主な機能では:
main(){
foo a = 1.2, b = 1.2, c = 1.2;
}
基本的に、「foo a、b、c」を同じdouble値に設定しようとしているときにこのコードで実行したいこと(したがって、「v1、v2、v3」も同じ値です)はfoo a=1.4です。 ay = 1を与え、foo b=1.4はby=0を与え、foo c=1.4はcy=2を与えます
短い擬似コードで。基本的に、「foo a」は常に最初のif句を使用し、「foo b」は常に2番目を使用し、「fooc」は常に3番目を使用する必要があります。
この割り当ての一部として、私はそのようにmain関数を実装する必要があります。変更できません。
私が最初に考えたのは、foo a、b、cを同じdoubleに設定しようとしても、そのdoubleは常にメモリ内で別の場所を占めるということでしたね。それで、コンストラクターでdouble&xのアドレスをどうにかして渡すことができるでしょうか?次に、そもそもこれらの変数を使用する代わりに、v1、v2、v3を表すようにそのアドレスを設定しますか?
double値が等しい場合でも、上記の2、3段落で概説したことを実行するコードを取得する必要があります。