Цитата:
Сообщение от LordJZ
Код:
X _x = X();
if (_x->wartime()==true)
Fix'd
|
Ерунду какую-то понаписали...
либо при объявлении экземпляра класса Х _x, использовать оператор "."
либо вместо
надо объялять указатель на класс и создавать его
и тогда использовать оператор "->"
И еще, на кой предмет в объявлении X _x писать = X()
такое объявление пишется просто так X _x;. У конструктора все равно нет параметров.
А если бы были параметры, то так X _x(параметр1, параметр2, ...);
Подытожив все сказанное, правильный вариант выглядит так:
Код:
class X: public Y
{...
public:
...
bool wartime() {return timing;};
...
protected:
bool timing;
...
};
X _x;
if (_x.wartime())
{
...
}
И последнее. Если функция объявлена как static, то никаких const не может быть. И не сможет она вернуть значение нестатического члена timing.
А учитывая то как был объявлен класс, функция wartime() возвращает именно переменную член, следовательно никаких статиков.