C++中一个.cpp调用另一个.cpp文件的方法

我在A.cpp中,定义了一个方法intggg();也定义了inta;我在B.cpp中也要使用上述方法中使用上述参数和方法。怎么才能用的到?????????????????... 我在A.cpp中,定义了一个方法 int ggg();也定义了int a;
我在B.cpp中也要使用上述方法中使用上述参数和方法。
怎么才能用的到???????????????????
我试着把 int ggg(); int a;的代码拷贝到B.cpp中,但是编译时。报A.obj中已经定义了该方法。。。
求详细解决办法。(不要说定义一样不同名方法和参数)
展开
 我来答
刺友互
高粉答主

2019-07-03 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:73.4万
展开全部

1、编译命令: g++ -o dome.so -shared -fPIC dome.cpp,如果成功则会在当前目录下生成一个dome.so的文件。

2、splitpath_s在此作用域中尚未声明这个函数需要的头文件是:<stdlib.h>,这个函数是 用来获取程序的路径,并对路径进行分解的。

3、在windows上编译时没有任何问题,但是到了centos上就出现了_splitpath_s在此作用域中尚未声明的错误提示,找了很久才发现原来 linux 下是没有_splitpath_s函数的,所以无法识别该函数。

4、‘fopen_s’在此作用域中尚未声明,这里之所以用fopen_s是因为在windows调试的时候提示不安全。

5、‘strlen’在此作用域中尚未声明,前面我声明了一个char[10]常量,然后通过strlen来获取该字符串的长度。

6、在windows中使用strlen只要调用了头文件#include <string>和空间名using namespace std;即可使用,但是在Linux中需要添加头文件#include <string.h>才行。

浙江启扬智能科技有限公司
2023-06-12 广告
Linux 嵌入式系统中,USB 启动模式能够烧写 ARM 的 uboot 的原因主要有以下几个方面:1. USB 启动模式相对于传统的 BIOS 启动模式来说,具有更高的兼容性和灵活性,可以支持更多的硬件设备和操作系统。2. USB 启动... 点击进入详情页
本回答由浙江启扬智能科技有限公司提供
muse4498
2018-07-31 · TA获得超过1.1万个赞
知道小有建树答主
回答量:55
采纳率:95%
帮助的人:1万
展开全部

例:文件test1.cpp有类class A;文件test2.cpp有类class B.

如在test2.cpp中想用A:

#include "test1.cpp"

1. a = new A,即可用a去访问A中提供的接口

2. A *a = new A;同样达到目的

当然一般的做法是将类的声明放在.h文件里,定义放在.cpp文件,然后可以直接在B类中保存一个A类的指针,那样即可实现使用A类了。

C++,这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。

它是“C Plus Plus”的简称。是继C语言之后又一种计算机编程语言,C++编程语言同时支持所有的C语言语法。C++和C相似:但C是面向过程的程序设计语言,而C++是面向对象的程序设计语言,不过C++语言保持了对C语言的兼容,也就说是在C++程序可以不用修改的插入C语言代码。

cpp是用C++语言编写的源代码文件的后缀名。它对类的强大支持可以使它编写出更优质的程序。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
推荐于2017-11-27 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450133
专业C/C++软件开发

向TA提问 私信TA
展开全部
既然编译的时候 会报重 证明两个cpp文件已经编到一个工程里面了
这时 只要再A中没有定义static 类型 那么在B中直接声明
extern int ggg();
extern int a;
就可以在其后使用ggg和a了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2015-04-15 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6460万
展开全部
在A.cpp中,定义了一个方法 int ggg();也定义了int a;

在B.cpp中进行如下声明:

extern int a;
extern int ggg();

然后直接使用就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文正153
2015-04-15 · TA获得超过2.1万个赞
知道大有可为答主
回答量:2221
采纳率:63%
帮助的人:634万
展开全部
A中已经定义, 所以B中不能再定义了, 应该声明.
变量的话你只用写extern int a;即可.
加上extern后, 一般来说这就是声明了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式