如何在同一源文件中访问另一个.cpp文件中的成员函数?

9

我正在使用Visual C++进行工作。在同一源文件中有两个.cpp文件。我该如何在这个主.cpp文件中访问另一个类(.cpp)的函数?


请问您为什么不想使用头文件?这可能有助于解决您的问题。 - Paolo Tedesco
3
我认为他并没有表示不想做,看起来是他不知道如何去做。 - Nathan Fellman
3个回答

11

你应该将你的类定义在一个.h文件中并在一个.cpp文件中实现它。然后,在你想使用你的类的地方包含你的.h文件。

例如

文件 use_me.h

#include <iostream>
class Use_me{

   public: void echo(char c);

};

使用文件 use_me.cpp

#include "use_me.h" //use_me.h must be placed in the same directory as use_me.cpp

void Use_me::echo(char c){std::cout<<c<<std::endl;}

主函数文件:main.cpp

#include "use_me.h"//use_me.h must be in the same directory as main.cpp
    int main(){
       char c = 1;

       Use_me use;
       use.echo(c);

       return 0;

    }

2
当然可以。复制Use_me类声明,将其粘贴到main.cppuse_me.cpp#include指令的位置。这本质上就是#include所做的事情。尽管这样做很愚蠢,但确实可以这样做。 - Rob Kennedy
由于您可以像这样包含它 #include <some_path/use_me.h>,因此 use_me.h 不必与 main.cpp 在同一个目录中。 - chaohuang

4

不创建头文件。使用extern修饰符。

a.cpp

extern int sum (int a, int b);

int main()
{
    int z = sum (2, 3);
    return 0;
}

b.cpp

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

3
函数默认情况下具有外部链接。只有变量需要使用 extern - Rob Kennedy

1

你应该将函数声明放在一个.hpp文件中,然后在main.cpp文件中#include它。

例如,如果你要调用的函数是:

int foo(int bar)
{
   return bar/2;
}

你需要创建一个名为foobar.hpp的文件,并将以下内容添加进去:

int foo(int bar);

并将以下内容添加到所有调用foo的.cpp文件中:

#include "foobar.hpp"

简单来说,另一个.cpp文件中有一个A类。在main.cpp文件中,是否有可能创建一个A类的对象? - Rajakumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接