C++ 编译器没有';我不认识我的结构成员
我在开头有这样的代码:C++ 编译器没有';我不认识我的结构成员,c++,struct,C++,Struct,我在开头有这样的代码: #include<iostream> using namespace std; struct mehmandar{ char name[30]; char last_name[30]; long national_code; long personal_code; date birthday; date employ_date; mehmandar * nxt; }; struct time{
#include<iostream>
using namespace std;
struct mehmandar{
char name[30];
char last_name[30];
long national_code;
long personal_code;
date birthday;
date employ_date;
mehmandar * nxt;
};
struct time{
int hour;
int min;
};
struct flight{
long flight_serial;
long plane_serial;
char from[30];
char to[30];
int traveller_num;
char pilot_name[30];
char pilot_lastnam[30];
mehmandar* mehmandar_majmue=NULL;
long total_price;
time flight_time;
flight * nxt;
};
int main() {
flight* temp=new flight;
cin >>temp->flight_time.hour;
return 0;
}
#包括
使用名称空间std;
结构mehmandar{
字符名[30];
char last_name[30];
长国家代码;
长个人密码;
生日;
雇佣日期;
迈赫曼达尔*nxt;
};
结构时间{
整小时;
int-min;
};
结构飞行{
长途飞行;
长平面序列;
来自[30]的字符;
char到[30];
国际旅行社;
char pilot_name[30];
char pilot_lastnam[30];
mehmandar*mehmandar_majmue=NULL;
长期总价;
飞行时间;
航班*nxt;
};
int main(){
航班*温度=新航班;
cin>>温度->飞行时间.hour;
返回0;
}
但是我得到的错误是,struct flight没有主要部件的成员flight\u time,time没有在struct flight部件中命名类型。不要将
time
用作全局类型。它与同名的标准库函数冲突
将其更改为my_time
,或者将其放在您自己的命名空间中。例如:
#include<iostream>
namespace MyApp
{
struct time
{
int hour;
int min;
};
struct flight
{
long flight_serial;
long plane_serial;
char from[30];
char to[30];
int traveller_num;
char pilot_name[30];
char pilot_lastnam[30];
long total_price;
time flight_time;
flight * nxt;
};
}
int main()
{
using namespace MyApp;
flight* temp=new flight;
std::cin >>temp->flight_time.hour;
return 0;
}
#包括
名称空间MyApp
{
结构时间
{
整小时;
int-min;
};
结构飞行
{
长途飞行;
长平面序列;
来自[30]的字符;
char到[30];
国际旅行社;
char pilot_name[30];
char pilot_lastnam[30];
长期总价;
飞行时间;
航班*nxt;
};
}
int main()
{
使用名称空间MyApp;
航班*温度=新航班;
标准:cin>>温度->航班时间.hour;
返回0;
}
当您可以说飞行温度时,为什么要堆分配对象代码>?如果使用名称空间std摆脱,会发生什么代码>?尝试将您的类型time
重命名为类似于time\u type
的名称。我必须定义date
才能编译它,但之后一切正常。我正在使用VisualStudio。尝试定义日期
?另外,查看编译器输出。您应该会看到这样的行:error:必须使用'struct'标记来引用此范围中的'time'类型。注意:结构“time”在这里被非类型的“time”声明隐藏:extern time\u t time(time\u t*\u timer)\u THROW代码>将结构命名为与环境提供的函数相同可能是个坏主意。