C++ 怎么定义结构体函数
10structmzidinfo11{12stringmzid;13MyMap<string,long>domaininfo;14init(){mzid="";domai...
10 struct mzidinfo
11 {
12 string mzid;
13 MyMap<string,long> domaininfo;
14 init() {mzid="";domaininfo.clear();}
15 };
总是提醒我出错:GetAllInfo.cpp:14: 错误:ISO C++ 不允许声明无类型的 ‘init’
为什么啊,应该怎么改? 展开
11 {
12 string mzid;
13 MyMap<string,long> domaininfo;
14 init() {mzid="";domaininfo.clear();}
15 };
总是提醒我出错:GetAllInfo.cpp:14: 错误:ISO C++ 不允许声明无类型的 ‘init’
为什么啊,应该怎么改? 展开
4个回答
2015-12-24 · 知道合伙人教育行家
sunzhenwei114
知道合伙人教育行家
向TA提问 私信TA
知道合伙人教育行家
采纳数:776
获赞数:6174
毕业于阜新矿业学院基础部数学师范专业,擅长初高中数学教学,熟练操作excel,信息技术与数学整合是特长。
向TA提问 私信TA
关注
展开全部
可以如下定义:
template<class T>
class mix
{
public:
mix();//<>是实例化的时候才用得。
void sort_all();
void out();
private:
struct unit
{
T x;
unit *next;
}
static void del_p( unit *p);
//此处省略部分成员
};
但是出于程序可读性的考虑,还是定义在类的外边比较好,如下:
struct Student{
char number[20];
char name[20];
float math;
float english;
float history;
};
class a{
private:
struct Student stu;
}
如果在结构体定义时,或定义后取了别名,可以用别名,否则不能省“struct”
如:typedef struct Teacher TEACHER;
则可以用TEACHER 代替struct Teacher
C语言的结构体没有存取控制权限,相当于C++存取控制权限中的public:
template<class T>
class mix
{
public:
mix();//<>是实例化的时候才用得。
void sort_all();
void out();
private:
struct unit
{
T x;
unit *next;
}
static void del_p( unit *p);
//此处省略部分成员
};
但是出于程序可读性的考虑,还是定义在类的外边比较好,如下:
struct Student{
char number[20];
char name[20];
float math;
float english;
float history;
};
class a{
private:
struct Student stu;
}
如果在结构体定义时,或定义后取了别名,可以用别名,否则不能省“struct”
如:typedef struct Teacher TEACHER;
则可以用TEACHER 代替struct Teacher
C语言的结构体没有存取控制权限,相当于C++存取控制权限中的public:
展开全部
其实这个问题很简单。你函数没有返回值类型啊,这个只有构造函数才允许的。我没有你这段代码的MyMap,所以没法帮你调试。你添加一个返回值类型试试看。如:void init() {mzid="";domaininfo.clear();}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么叫结构体函数?结构体里面不能放函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你init函数没有类型,没返回值就在前面加上void
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询