Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Не работает функция в статической функции


Автор: DissDoc 17.1.2011, 10:57
Всем привет! 
У меня такая ситуация. Есть класс. в котором функция является статической. И есть класс, проинициализированный в конструкторе. Если в двух словах
Код

class Test
{
public:
    //.....................
    static void func();
private:
    CInner* Inner;
};

Далее хочу класс Inner вписать в функцию. Получается что-то вроде
Код

void Test::func()
{
    Inner->some_func();
}

В результате получаю ошибку
a nonstatic member reference must be relative to a specific object
P.S. Класс Inner инициализирую естессно в конструкторе класса Test

Автор: azesmcar 17.1.2011, 11:00
Объект Inner в статической функции недоступен. В статическую функцию не передается this. Либо убирай static, либо вызов, либо передавай в функцию указатель на объект Test, для которого хочешь вызвать some_func.

Автор: baldina 17.1.2011, 14:16
Цитата(azesmcar @  17.1.2011,  11:00 Найти цитируемый пост)
либо передавай в функцию указатель на объект Test, для которого хочешь вызвать some_func. 

ну тогда уж проще и логичнее делать функцию нестатической

Автор: azesmcar 17.1.2011, 14:28
Цитата(baldina @  17.1.2011,  14:16 Найти цитируемый пост)
ну тогда уж проще и логичнее делать функцию нестатической 

Ну вообще да, этот вариант я тоже предложил, но мало ли.. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)