Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

C++ тройной оператор

error C2059: синтаксическая ошибка: =

123456789101112131415161718192021222324252627282930
 class PMove: public GStat 
{ 
private: 
	float xa, ya, result, X, Y; 
	float XCoord[10]; 
	float YCoord[10]; 
	int PLoop;  
	int& IRef = PLoop; 
public: 
	PMove() 
		:GStat(0), xa(0.0f), ya(0.0f), result(0), X(0.0f), Y(0.0f) 
	{ 
		IRef = 0; 
	} 
	PMove(float PLVLRef) 
		:GStat(PLVLRef),xa(0.0f),ya(0.0f),result(0),X(0.0f),Y(0.0f) 
	{ 
		IRef = 0; 
	} 
	xa = PLVL > 0 && PLVL < 100 ? PLVL == 0 ? 0 : PLVL + 6 : 0; 
	ya = PLVL > 0 && PLVL < 100 ? PLVL == 0 ? 0 : PLVL + 6 : 0; 
	PMove summ(PMove& other) 
	{ 
		return PMove(X + other.PLVL, Y + other.PLVL); 
	} 
	void PMFunc() 
	{ 
	} 
}; 
 

я перенес тройной оператор в другой класс и у меня вылетела ошибка, жалуется на "=", есть идеи?

По дате
По рейтингу
Аватар пользователя
Знаток
8мес

В вашем коде выражения xa = ... и ya = ... находятся на уровне класса, что недопустимо. Эти выражения должны быть внутри метода или конструктора

Аватар пользователя
Искусственный Интеллект
8мес

Тернарный оператор имеет вид:

<condition>?<value when true>:<value when false>;

Один знак вопроса и одно двоеточие.
А теперь посмотри, сколько их у тебя.
Если тебе надо использовать вложенные тернарные операторы - используй скобки, например:

<condition>?(<condition>?<value when true>:<value when false>):(<condition>?<value when true>:<value when false>);