Различать несколько экземпляров значения переменной?

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’ одинаковое двойное значение (и, следовательно, ‘v1, v2, v3’ также имеют одинаковое значение), это foo a = 1.4 дает ау = 1,
foo b = 1.4 дает b.y = 0, а foo c = 1.4 дает c.y = 2

короче псевдокод. По существу, ‘foo a’ всегда должен использовать первое условие if, ‘foo b’ всегда должно использовать второе, а ‘foo c’ всегда должно использовать третье.

В рамках этого задания я ДОЛЖЕН реализовать основную функцию таким образом. Это не может быть изменено.

Моей первой мыслью было, что даже если я пытаюсь установить foo a, b, c в один и тот же double, этот double всегда занимает другое место в памяти, не так ли? Так что, возможно, я мог бы как-то передать в адрес двойной &х в конструкторе? Затем установите этот адрес для представления v1, v2 и v3 вместо использования этих переменных в первую очередь?

Мне просто нужно получить код, чтобы сделать то, что я обрисовал в общих чертах пару абзацев выше, даже когда двойные значения равны.

2

Решение

Поскольку кажется, что ваш вопрос касается домашнего задания, я собираюсь указать вам в направлении статические переменные-члены короче говоря, переменные класса, которые совместно используются всеми экземплярами данного класса. Вы можете использовать одну или несколько из этих переменных, чтобы отслеживать ход создания ваших экземпляров.

2

Другие решения

К сожалению, если оба из следующих условий верны:

короче псевдокод. По сути, ‘foo a’ всегда должен использовать первый, если
предложение, ‘foo b’ всегда должно использовать второе, а ‘foo c’ должно
всегда используйте третий.

а также

В рамках этого задания я ДОЛЖЕН реализовать основную функцию в
путь. Это не может быть изменено.

…тогда тебе не повезло. Там нет никакой разницы в вашей основной функции между a, b, а также c кроме их имен.

Может быть, я неправильно понимаю что-то в вашей фразе — если да, не могли бы вы уточнить?

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector