这是我的第一个问题.我今年夏天开始学习C++,这部分代码有点问题:
struct Contact{
char name[30];
char surname[50];
int age;
struct Born{
int day;
int month;
int year;
};
char mail[50];
};
Run Code Online (Sandbox Code Playgroud)
好吧,我认为代码的这一部分是可以的,但是我有这个函数输入信息,我不知道我做错了什么.
Contact readContact(){
Contact c;
cout << "\t NAME: ";
cin.getline(c.name,30);
cout << "\t SURNAME: ";
cin.getline(c.surname,50);
cout << "\t AGE: ";
cin >> c.age;
cout << "\t BIRTHDATE:";
cin >> c.Born.day >> c.Born.month >> c.Born.year;
cout << "\t EMAIL: ";
cin.getline(c.mail,50);
cin.ignore();
return c;
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
无效使用'struct Contact :: Born'|
也许这是一个简单的错误,但我是编码的新手,我看不出我做错了什么.:(
正如评论中所提到的,符号Born
是一种类型,非常类似Contact
.
简单的解决方案是将结构声明为变量的匿名类型:
struct Contact{
char name[30];
char surname[50];
int age;
struct /* No type name here */ {
int day;
int month;
int year;
} Born; // Member variable name here
char mail[50];
};
Run Code Online (Sandbox Code Playgroud)