2014-12-29 4 views
0

Вот мой код:Инициирование на структуру, которая является членом класса

... 
#include "myheader.h" 

myClass::myStruct Foo; 

Foo.one = 1; 
Foo.two = 2; 

myClass myclass(Foo); 
... 

Это мой класс из файла заголовка:

class myClass : baseClass{ 
public: 
struct myStruct { 
myStruct(): 
one(0), 
two(0){} 
int one; 
int two; 
}; 
myClass(const myStruct &mystruct); 
}; 

Но это не удается скомпилировать, я думаю, что я доступ к элементам один и два соответствующим образом ... Я получаю эту ошибку:

: ожидаемый конструктор, деструктор или преобразование типа перед '.' токен.

Где я ошибаюсь?

+0

Просто Sidenote, я не должен редактировать файл заголовка. – Codename

ответ

3
Foo.one = 1; 

Это заявление, и ему необходимо войти в определение функции или метода. Выражения не могут отображаться сами по себе на верхнем уровне исходного файла.

Попробуйте поместить этот код в функции, например, точка входа main():

int main() { 
    myClass::myStruct Foo; 

    Foo.one = 1; 
    Foo.two = 2; 

    myClass myclass(Foo); 

    return 0; 
} 
+0

Я поместил его в Init(), который уже имеет файл. Ранняя ошибка исчезла. Но теперь у меня есть новая ошибка: ISO C++ запрещает объявление myStruct без типа \ n expected ';' до '.' – Codename

+0

@Codename Я не вижу ваш экран. Покажите код, желательно в новом вопросе, так как это новая проблема. – cdhowie

+0

http://stackoverflow.com/questions/27684721/iso-c-forbids-declaration-of-mystruct-with-no-type – Codename

Смежные вопросы