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 вместо использования этих переменных в первую очередь?
Мне просто нужно получить код, чтобы сделать то, что я обрисовал в общих чертах пару абзацев выше, даже когда двойные значения равны.
Поскольку кажется, что ваш вопрос касается домашнего задания, я собираюсь указать вам в направлении статические переменные-члены короче говоря, переменные класса, которые совместно используются всеми экземплярами данного класса. Вы можете использовать одну или несколько из этих переменных, чтобы отслеживать ход создания ваших экземпляров.
К сожалению, если оба из следующих условий верны:
короче псевдокод. По сути, ‘foo a’ всегда должен использовать первый, если
предложение, ‘foo b’ всегда должно использовать второе, а ‘foo c’ должно
всегда используйте третий.
а также
В рамках этого задания я ДОЛЖЕН реализовать основную функцию в
путь. Это не может быть изменено.
…тогда тебе не повезло. Там нет никакой разницы в вашей основной функции между a
, b
, а также c
кроме их имен.
Может быть, я неправильно понимаю что-то в вашей фразе — если да, не могли бы вы уточнить?