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’
为什么啊,应该怎么改?
展开
 我来答
sunzhenwei114
2015-12-24 · 知道合伙人教育行家
sunzhenwei114
知道合伙人教育行家
采纳数: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:
龍不悔
2013-11-13 · TA获得超过1138个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:497万
展开全部
其实这个问题很简单。你函数没有返回值类型啊,这个只有构造函数才允许的。我没有你这段代码的MyMap,所以没法帮你调试。你添加一个返回值类型试试看。如:void init() {mzid="";domaininfo.clear();}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jonahkingkkkk
2013-11-13 · TA获得超过466个赞
知道小有建树答主
回答量:190
采纳率:50%
帮助的人:158万
展开全部
什么叫结构体函数?结构体里面不能放函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
征服全世界Orz
2013-11-13
知道答主
回答量:26
采纳率:0%
帮助的人:8.3万
展开全部
你init函数没有类型,没返回值就在前面加上void
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式