美文网首页
多文件编程

多文件编程

作者: kSimpleCoder | 来源:发表于2017-06-05 15:44 被阅读28次

    随着程序的慢慢变大,单一文件必然不能满足我们的需求,一个普遍的做法是多文件编程,这样做的目的也是为了项目组织结构更加清晰,代码的可重用性变得更高。

    一个多文件的例子

    add.cpp:

    int add(int x, int y)
    {
        return x + y;
    }
    

    main.cpp:

    #include <iostream>
     
    int main()
    {
        std::cout << "The sum of 3 and 4 is: " << add(3, 4) << std::endl;
        return 0;
    }
    

    编译以上代码,你会发现程序并不会编译成功,并且会报出与上一节课相同的错误Use of undeclared identifier 'add',原因是:
    解析器解析代码文件的时候,它不知道其他代码文件里面的任何东西,也不会记住任何以前编译过的代码文件的东西,在这种情况下,编译器不知道新文件里面的add()函数,也不记得以前编译过的add()函数,所以它给出的解释就是,它根本不知道add()是什么东西。

    该怎么解决这个错误呢?

    我们想让main.cpp文件知道add()函数是存在add.cpp文件的,为了能让main.cpp文件能够访问add()这个函数,我们需要使用前向声明:

    #include <iostream>
     
    int add(int x, int y); //我们需要让main.cpp知道add()是一个定义在某个地方的函数
    
    int main()
    {
        std::cout << "The sum of 3 and 4 is: " << add(3, 4) << std::endl;
        return 0;
    }
    
    值得注意的是:

    不要在main.cpp里面#include "add.cpp",
    这样做会导致解析器把add.cpp里面的内容直接插入到main.cpp里面,而不是把他们看作是独立的文件。

    相关文章

      网友评论

          本文标题:多文件编程

          本文链接:https://www.haomeiwen.com/subject/xfgifxtx.html