Обновление: я думаю, оно исправлено. Спасибо, парни!C++: ошибка: неверное использование квалифицированного имени
Я получаю сообщение об ошибке, и я просто не могу понять это. У меня есть этот код:
//A Structure with one variable and a constructor
struct Structure{
public:
int dataMember;
Structure(int param);
};
//Implemented constructor
Structure::Structure(int param){
dataMember = param;
}
//A class (which I don't plan to instantiate),
//that has a static object made from Structure inside of it
class unInstantiatedClass{
public:
static Structure structObject;
};
//main(), where I try to put the implementation of the Structure from my class,
//by calling its constructor
int main(){
//error on the line below
Structure unInstantiatedClass::structObject(5);
return 0;
}
На линии, которая говорит «Структура unInstantiatedClass :: structObject (5)», я получаю ошибку, которая гласит:
error: invalid use of qualified-name 'unInstantiatedClass::structObject'
Я гугл этой ошибки и просмотрел несколько сообщений на форуме, но все проблемы кажутся разными. Я также пробовал googling «статический объект структуры внутри класса» и другие связанные фразы, но не нашел того, что, по-моему, действительно связано с моей проблемой.
Что я пытаюсь сделать здесь: Имейте класс, который я никогда не создавал. и Внутри этого класса есть статический объект, который имеет переменную, которая может быть установлена через конструктор.
Любая помощь приветствуется. Благодарю.
Нет, это уже экземпляр, и он инициализирован, увидев, что это 'static' –
У меня нет компилятора, но наверняка это даст ту же ошибку? Проблема в том, что определение не может быть внутри функции, и изменение стиля инициализации от прямого к копированию не будет иметь для этого никакого значения. –
Согласен. Я считаю, что инициализация статического члена должна быть перенесена в глобальную область. – Tuxdude