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

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

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>才行。

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-07-31

例:文件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++语言编写的源代码文件的后缀名。它对类的强大支持可以使它编写出更优质的程序。

本回答被网友采纳
第2个回答  推荐于2017-11-27
既然编译的时候 会报重 证明两个cpp文件已经编到一个工程里面了
这时 只要再A中没有定义static 类型 那么在B中直接声明
extern int ggg();
extern int a;
就可以在其后使用ggg和a了本回答被网友采纳
第3个回答  2015-04-15
在A.cpp中,定义了一个方法 int ggg();也定义了int a;

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

extern int a;
extern int ggg();

然后直接使用就可以了
第4个回答  2015-04-15
A中已经定义, 所以B中不能再定义了, 应该声明.
变量的话你只用写extern int a;即可.
加上extern后, 一般来说这就是声明了.
相似回答