我正在用c ++制作一个接受极高值的计算器.我为数字创建了一个类,我在标题中定义了它.我的第一个cpp文件包含基本函数,如add,subtract,multiply和divide (link).我的第二个cpp文件包含类定义,允许我根据需要操作数字对象(链接).我的第三个cpp文件是main,它还没有多少(链接).我正在尝试使用以下方法将这些文件链接在一起:
g++ -o bignumbers bignum_funcdefs.cpp bignum_classdefs.cpp main.cpp
Run Code Online (Sandbox Code Playgroud)
根据我的阅读,以这种方式通过g ++传递多个文件与一次传递一个文件没什么不同.显然问题是bignum_classdefs.cpp需要bignum_funcdefs.cpp中的函数,但我不知道如何使它们可访问.我也试过这个:
g++ -c bignum_funcdefs.cpp
g++ -c bignum_classdefs.cpp bignum_funcdefs.o
Run Code Online (Sandbox Code Playgroud)
但这给了我同样的错误,即funcdefs中的函数尚未定义.我是以错误的方式来做这件事的吗?有没有办法让这些文件以它们的方式工作?有没有更好的方法来构建我的cpp文件,类和标头?整个回购都可以在这里找到,任何建议都非常感谢.使用我的代码的具体建议将有助于更多.
分离您的类定义和您的实现.将类的设计放在一个.h文件中,并将其包含在两个cpp文件中.这是将项目扩展到单个文件之外的典型模式.
还声明(但不实现)一个文件中的任何函数,并由另一个文件中的另一个函数调用.h.这通常看起来像:
extern bignum addNumbers(bigNumber &, bigNumber &) ;
Run Code Online (Sandbox Code Playgroud)
我看到你.h的班级有一个,所以只需将函数的所有声明添加bignum_funcdefs.cpp到底部bignum_decs.h