ajego9283
2016-10-08 05:04
采纳率: 100%
浏览 3.2k
已采纳

c++/qt 无法调用另一个cpp的函数

代码详情在图中。
图片说明

main.cpp:
error: undefined reference to `InsertS(char*, char*, int, int)'

widget.cpp:
error: undefined reference to `GetS(char*, char*, char*)'

collect2.exe:-1: error: error: ld returned 1 exit status

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • AlbertS 2016-10-08 05:39
    已采纳

    类型的成员函数需要使用对象去调用,main函数的中的正确调用应该是

     BFunction bf;
     bf.InsertS(First, Second, dis, num)
    

    或者把InsertS声明成静态函数

     static void InsertS(char A[], char B[], int C, int D)
    

    然后在main函数中这么调用

     BFuction::InsertS(First, Second, dis, num);
    
    已采纳该答案
    打赏 评论
  • ajego9283 2016-10-08 05:13

    简单描述问题就是:
    在**my_file.h**,**my_file.cpp**中声明定义过一个函数,
    在其他的cpp中,即使写了**#include "my_file.h" 或者 **extern .......(该函数)
    也还是出现 underfined reference to (该函数)的错误

    打赏 评论
  • Game_Hacker 2016-10-08 05:30

    类的成员函数需要通过类对象去调用,不能这样直接用的,除非你把类的成员函数声明成静态的,这样其他地方用就可以直接 类名::函数名 来调用

    打赏 评论
  • 殇婆婆 2016-10-08 05:40
    打赏 评论

相关推荐 更多相似问题