Я получаю ошибки от моего компилятора, когда я пытаюсь написать код с таким общим форматом:
в classname.hpp
#include "otherclass.hpp"
class classname {
public:
typedef struct {
otherclass membername(sometype);
} structname;
void functionname(structname& exampleData);
}
в main.cpp, я определяю переменную exampleData:
classname::structname exampleData;
в classname.cpp, у меня есть функция, которая использует exampleData и пытается инициализировать член, имя члена структуры:
void classname::functionname(structname& exampleData){
sometype a;
exampleData.membername(a);
}
Я получаю ошибку от моего компиляторазаявив:
Неопределенные символы: classname::structname::membername(sometype)
"ссылка с classname::functionname(classname::structname&)
в classname.o. ld: символ (ы) не найдены
Я думаю, что моя ошибкалежит в пределах строки
otherclass membername(sometype)
Я также думал, что это может быть:
otherclass membername(sometype& a)
Но я получил те же ошибки.
Мне интересно, законно ли эточтобы сделать, иметь член в структуре в классе, конструктор которого не (). В main.cpp, когда я объявляю exampleData, имя члена еще не было инициализировано. Это законно или я охота не в том месте?