C++,如何在一个cpp文件里使用另一个cpp文件自定义的对象
已定义一个类的头文件MUSIC.h(里面有类的声明和成员函数的定义)在1.cpp中,定义MUSICm;在2.cpp中,用externMUSICm,为什么总是提示什么已重复...
已定义一个类的头文件MUSIC.h(里面有类的声明和成员函数的定义)
在1.cpp中,定义MUSIC m ;
在2.cpp中,用extern MUSIC m,为什么总是提示什么已重复定义??
(1.cpp中已经#include<MUSIC.h>,2.cpp中没有#include<MUSIC.h>,否则会报错)
而相同的情况,如果
在1.cpp中,定义int a ;
在2.cpp中,声明外部变量extern int a ; 那么编译就可以通过
这是为什么,标准类型的就可以而我们自定义的类用extern MUSIC m ; 就出问题?
求高手解答 展开
在1.cpp中,定义MUSIC m ;
在2.cpp中,用extern MUSIC m,为什么总是提示什么已重复定义??
(1.cpp中已经#include<MUSIC.h>,2.cpp中没有#include<MUSIC.h>,否则会报错)
而相同的情况,如果
在1.cpp中,定义int a ;
在2.cpp中,声明外部变量extern int a ; 那么编译就可以通过
这是为什么,标准类型的就可以而我们自定义的类用extern MUSIC m ; 就出问题?
求高手解答 展开
5个回答
展开全部
2.cpp中要有#include “MUSIC.h”
MUSIC.h文件中要使用条件编译让其不多次加载
比如:
#ifndef _NUSIC_H_
#define _NUSIC_H_
...
#endif
最后看看m是不是你又定义了一个叫m的其他类型的变量
MUSIC.h文件中要使用条件编译让其不多次加载
比如:
#ifndef _NUSIC_H_
#define _NUSIC_H_
...
#endif
最后看看m是不是你又定义了一个叫m的其他类型的变量
追问
如果在2.cpp中#include “MUSIC.h”,就会出现错误
fatal error LNK1169: 找到一个或多个多重定义的符号
检查过了,没有另一个全局变量m
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道楼主的music.h中是否有
#ifndef _NUSIC_H_
#define _NUSIC_H_
...
#endif
或者
#pragma once
这样的预编译指令?
2.cpp中肯定是要#include "music.h"的,不然extern MUSIC m;中MUSIC就没有定义,会报错
#ifndef _NUSIC_H_
#define _NUSIC_H_
...
#endif
或者
#pragma once
这样的预编译指令?
2.cpp中肯定是要#include "music.h"的,不然extern MUSIC m;中MUSIC就没有定义,会报错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
更多追问追答
追问
MUSIC.h里面就是对MUSIC类的成员函数的声明和定义啊
没有其他为m的全局变量
之前在1.cpp里编译是通过的,但自从新建个2.cpp并加入extern MUSIC m;后,
就总是说MUSIC是未定义的
追答
MUSIC没有定义跟重复定义是不同的含义
必须#include
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在这个样例中有使用了另一个textfile.cpp,期中还用到头textfile.h头文件
主cpp头文件
#include "textfile.h" /*这里在同一个目录里面,如果不同目录,详情了解绝对地址和相对地址*/
http://jingyan.baidu.com/article/3c48dd34873509e10be35880.html
主cpp头文件
#include "textfile.h" /*这里在同一个目录里面,如果不同目录,详情了解绝对地址和相对地址*/
http://jingyan.baidu.com/article/3c48dd34873509e10be35880.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#pragma once
这句加在MUSIC.h开头部分
2.cpp加上#include<MUSIC.h>
这句加在MUSIC.h开头部分
2.cpp加上#include<MUSIC.h>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询