在VS 2010中,如何在一個.cpp文件中调用另外一个.cpp文件的函数

时间:2022-09-29 15:22:54

例如,我的main函数在 run.cpp里, 而我有一个函数 say_hello()在hello.cpp里,如何在main里调用这个hello.cpp?

16 个解决方案

#1


要么把say_hello放到一个头文件里,要么在run.cpp里加上extern say_hello();

#2


生明为友元函数,或都声明类对象,调用成功函数

#3


引用 1 楼 whg01 的回复:
要么把say_hello放到一个头文件里,要么在run.cpp里加上extern say_hello();


run.cpp里肯定要是包含hello.cpp文件的

用extern只是告诉编译器这个是外部的,到其它文件去找

#4


此为套路:

// file foo.h
# ifndef _FOO_H_
# define _FOO_H_

extern void sayHello();

# endif // _FOO_H_

// file foo.cpp
# include "foo.h"
# include <iostream>

using namespace std;

void sayHello()
{
     // say your hello
}

// file main.cpp
# include "foo.h"

int main()
{
    sayHello();

    return 0;
}

#5


很简单,现场编一个给你看看~
在hello.cpp里:
#include "hello.h" // 记住这个很重要~是你自己编写的~
void hello::say_hello(){。。。。。}
在hello.h里:
calss hello{void say_hello();}
在run.cpp里:
#include "hello.h" //这里再加一次;或者在run.h中实现
int main()
{hello a; //记住这里得申请一下
a.say_hello(); //然后再调用即可~
。。。。。。。。。。。
}

#6


#include <xxx.cpp>

extern func();

#7


建一个头文件hello.h,并且在头文件中声明say_hello()
在hello.cpp和run.cpp中包含头文件hello.h

#8


#include "hello.cpp"
这样应该可以的,哈哈
..........

别学,这是非常不专业的做法。

#9


引用 1 楼 whg01 的回复:
要么把say_hello放到一个头文件里,要么在run.cpp里加上extern say_hello();

用头文件是最好的方法,也避免重复等

#10


include一下头文件就好了。。。可以直接声明对象调用方法了。。。

#11


C++ primer plus 看文件的链接性,整体上都看一下,你问的问题只是其中的一个

#12


只要包含头文件就可以调用了。其实不用头件,声明一下这个函数就可以直接用了。

#13


取巧的方式用命名空间也可以,不过还是用头文件吧,将函数的声明放在头文件中,定义在hello.cpp中,这是常用方法

#14


其实也可以直接#include "hello.cpp"

#15


学习!

#16


引用 5 楼 qf17331733 的回复:
很简单,现场编一个给你看看~
在hello.cpp里:
#include "hello.h" // 记住这个很重要~是你自己编写的~
void hello::say_hello(){。。。。。}
在hello.h里:
calss hello{void say_hello();}
在run.cpp里:
#include "hello.h" //这里再加一次;或者在run.h中实现
i……

请问如果只是单纯运行主函数的话而不是加在项目里面的话,怎么把hello.c链接给main.c,从而使主函数能够识别调用的say_hello函数已经在hello.c中定义过了?新手求教

#1


要么把say_hello放到一个头文件里,要么在run.cpp里加上extern say_hello();

#2


生明为友元函数,或都声明类对象,调用成功函数

#3


引用 1 楼 whg01 的回复:
要么把say_hello放到一个头文件里,要么在run.cpp里加上extern say_hello();


run.cpp里肯定要是包含hello.cpp文件的

用extern只是告诉编译器这个是外部的,到其它文件去找

#4


此为套路:

// file foo.h
# ifndef _FOO_H_
# define _FOO_H_

extern void sayHello();

# endif // _FOO_H_

// file foo.cpp
# include "foo.h"
# include <iostream>

using namespace std;

void sayHello()
{
     // say your hello
}

// file main.cpp
# include "foo.h"

int main()
{
    sayHello();

    return 0;
}

#5


很简单,现场编一个给你看看~
在hello.cpp里:
#include "hello.h" // 记住这个很重要~是你自己编写的~
void hello::say_hello(){。。。。。}
在hello.h里:
calss hello{void say_hello();}
在run.cpp里:
#include "hello.h" //这里再加一次;或者在run.h中实现
int main()
{hello a; //记住这里得申请一下
a.say_hello(); //然后再调用即可~
。。。。。。。。。。。
}

#6


#include <xxx.cpp>

extern func();

#7


建一个头文件hello.h,并且在头文件中声明say_hello()
在hello.cpp和run.cpp中包含头文件hello.h

#8


#include "hello.cpp"
这样应该可以的,哈哈
..........

别学,这是非常不专业的做法。

#9


引用 1 楼 whg01 的回复:
要么把say_hello放到一个头文件里,要么在run.cpp里加上extern say_hello();

用头文件是最好的方法,也避免重复等

#10


include一下头文件就好了。。。可以直接声明对象调用方法了。。。

#11


C++ primer plus 看文件的链接性,整体上都看一下,你问的问题只是其中的一个

#12


只要包含头文件就可以调用了。其实不用头件,声明一下这个函数就可以直接用了。

#13


取巧的方式用命名空间也可以,不过还是用头文件吧,将函数的声明放在头文件中,定义在hello.cpp中,这是常用方法

#14


其实也可以直接#include "hello.cpp"

#15


学习!

#16


引用 5 楼 qf17331733 的回复:
很简单,现场编一个给你看看~
在hello.cpp里:
#include "hello.h" // 记住这个很重要~是你自己编写的~
void hello::say_hello(){。。。。。}
在hello.h里:
calss hello{void say_hello();}
在run.cpp里:
#include "hello.h" //这里再加一次;或者在run.h中实现
i……

请问如果只是单纯运行主函数的话而不是加在项目里面的话,怎么把hello.c链接给main.c,从而使主函数能够识别调用的say_hello函数已经在hello.c中定义过了?新手求教