当前位置:编程学习 > wap >>

【急】,求解释!!Qt中出现multiple definition of...错误

错误详见下面的连接地址:
http://www.qtcn.org/bbs/read-htm-tid-46499-page-e.html#a
在头文件中定义结构体之后编译连接出现上述错误
struct Tag_Trailer
{   
char Header[3];    
char Title[30];    
char Artist[30];   
char Album[4];   
char Size[4];
};   
Tag_Trailer Mp3Trailer;
去掉Tag_Trailer Mp3Trailer行,错误消失,请问这是什么错误呢?
谢谢!! --------------------编程问答-------------------- Tag_Trailer mp3Trailer;
换个名字,小写开头,以避免重定义。 --------------------编程问答-------------------- Tag_Trailer Mp3Trailer;
改成:struct Tag_Trailer Mp3Trailer;
这个是c的正规语法。要么你就别struct了,改成:
class Tag_Trailer
{   
public:
char Header[3];   
char Title[30];   
char Artist[30];   
char Album[4];   
char Size[4];
};   
Tag_Trailer Mp3Trailer;
--------------------编程问答-------------------- 结合1,2楼修改后,错误依旧一样,费解... --------------------编程问答-------------------- class Tag_Trailer
{   
public:
char Header[3];   
char Title[30];   
char Artist[30];   
char Album[4];   
char Size[4];
};   
Tag_Trailer Mp3Trailer;
这个会有错?我怎么没有错?
你要是非要struct还可以这么写:
typedef struct Tag_Trailer
{   
char Header[3];   
char Title[30];   
char Artist[30];   
char Album[4];   
char Size[4];
} MyTag_Trailer;   
MyTag_Trailer Mp3Trailer;

在没有上下文的情况下,上边的代码我的都正常便已通过 --------------------编程问答-------------------- C++ 的基本原则:除类定义,const常量定义,模板定义外,不要放置任何定义,只放声明!!

题外:可以猜出,你的头文件应该被多个编译单元(.cpp)文件包含了 --------------------编程问答-------------------- 重定义了

Tag_Trailer Mp3Trailer;这个不要放在头文件里面,还是老老实实放在cpp中把
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,