C++ 区分变量值的多个实例?

C++ 区分变量值的多个实例?,c++,C++,在主要功能中: 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)

在主要功能中:

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;
    }

};
本质上,当我们试图将'foo a,b,c'设置为相同的双精度值(因此'v1,v2,v3'也是相同的值)时,我希望这段代码做的是,foo a=1.4给出a.y=1, foo b=1.4表示b.y=0,foo c=1.4表示c.y=2

简而言之,伪代码。基本上,“fooa”应该总是使用第一个if子句,“foob”应该总是使用第二个,而“fooc”应该总是使用第三个

作为本任务的一部分,我必须以这种方式实现主要功能。这是无法改变的

我的第一个想法是,即使我试图将foo a,b,c设置为相同的双精度,双精度在内存中总是占据不同的位置,不是吗?也许我可以在构造函数中传递double&x的地址?然后将该地址设置为表示v1、v2和v3,而不是首先使用这些变量


我只需要让代码来做我在上面几段中概述的事情,即使在双值相等的情况下。

因为你的问题似乎与家庭作业有关,我将向你指出一个方向,简言之,就是在给定类的所有实例之间共享的类变量。您可以使用这些变量中的一个或多个来跟踪实例实例化的进度。

不幸的是,如果以下两种情况都成立:

简而言之,伪代码。基本上,“fooa”应该总是使用第一个if 子句“foob”应始终使用第二个,而“fooc”应 始终使用第三个

作为这项任务的一部分,我必须实现该任务中的主要功能 对。这是无法改变的

…那你就不走运了。除了名称之外,
a
b
c
之间的主函数没有任何区别


也许我误解了你的措辞——如果是这样,你能澄清一下吗?

你忘记了
main
上的返回类型,我认为你根本不清楚你打算在这里实现什么
foo
不是
double
。请避免使用相等值比较浮点值。在网上搜索“每个程序员都应该知道的关于浮点运算的知识”。忘掉这一点,让编译器来操心吧。任何好的编译器都会根据您选择的大小或速度来选择最佳方法。
main(){
    foo a = 1.2, b = 1.2, c = 1.2;
}