没心没肺之王 2023-10-14 17:08 采纳率: 100%
浏览 15
已结题

分文件编写为何没成功

今天做一个c++小项目想用一下分文件编写,结果总是失败,请各位帮我看看!

写一个两数相加的函数经头文件引用的测试
文件放置在同一个文件下

img

头文件

#include <iostream>
using namespace std;
int myplus(int a,int b);

函数文件

#include "myplus.h"

int myplus(int a,int b)
{
    
    return (a+b);
}


主程序

#include <iostream>
using namespace std;
#include "myplus.h"

int main()
{
    int a=10;
    int b=20;
    int c=myplus(a,b);

    cout<<"c="<<c<<endl;

    return 0;

}

没有语法错误,但是编译错误,程序无法运行

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-14 21:38
    关注

    【以下回答由 GPT 生成】

    问题出在编译时,编译器无法找到"myplus.cpp"中定义的函数myplus。这是因为在编译期间,每个.cpp文件使用的是单独的编译单元,编译器只能识别当前编译单元中的函数和变量。

    为了解决这个问题,你需要将函数定义从myplus.cpp移动到myplus.h头文件中,并在需要使用这个函数的地方包含头文件。

    下面是修改后的代码:

    头文件 "myplus.h":

    #ifndef MYPLUS_H
    #define MYPLUS_H
    
    int myplus(int a, int b)
    {
        return (a+b);
    }
    
    #endif
    

    主程序:

    #include <iostream>
    #include "myplus.h"
    
    int main()
    {
        int a=10;
        int b=20;
        int c=myplus(a,b);
    
        std::cout<<"c="<<c<<std::endl;
    
        return 0;
    }
    

    通过这样的修改,函数定义将会被包含在每个使用myplus.h头文件的.cpp文件中,从而解决了编译时找不到函数定义的问题。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月23日
  • 已采纳回答 10月15日
  • 修改了问题 10月14日
  • 创建了问题 10月14日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?