C++中一个.cpp调用另一个.cpp文件的方法
我在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>才行。
例:文件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++语言编写的源代码文件的后缀名。它对类的强大支持可以使它编写出更优质的程序。
这时 只要再A中没有定义static 类型 那么在B中直接声明
extern int ggg();
extern int a;
就可以在其后使用ggg和a了
在B.cpp中进行如下声明:
extern int a;
extern int ggg();
然后直接使用就可以了
变量的话你只用写extern int a;即可.
加上extern后, 一般来说这就是声明了.