Я пытаюсь создать экземпляр класса внутри класса. Я объявил два класса = первыйСоздание экземпляра класса внутри класса
class Student{
public:
Student(string m,int g){
name=m;
age=g;
}
string getName(){
return name;
}
int getAge(){
return age;
}
private:
string name;
int age;
};
И, во-вторых, где я хочу создать экземпляр студента.
class Class{
public:
Class(string n){
name = n;
};
string studentName(){
return Martin.getName();
}
private:
string name;
Student Martin("Martin",10);
Student Roxy("Roxy",15);
};
я получаю эту ошибку
'((класс *) это) -> Class :: Martin' не имеет тип класса
ожидается идентификатор, прежде чем строковая константа |
Студент был деконструирован перед классом, поэтому у него не должно быть проблем с его доступом. В чем причина такого поведения? Как я могу это исправить?
Инициализация в классе вполне приемлема, но необходима использовать скобки вместо круглых скобок. –
Вы абсолютно корректны для C++ 11, но вам нужно скомпилировать его с флагом -std = C++ 11 (по крайней мере, для старых компиляторов) – Goldfishslayer