在同一个项目中的两个不同的c ++文件之间传递值

时间:2010-03-30 20:35:07

标签: c++

noob问题就在这里。如何在同一个项目中的两个不同的cpp文件之间传递值?你做对象吗?如果是的话,其他cpp文件怎么看? 一些启发请...

编辑:一些澄清。我正在尝试将直接输入与程序(我有插件sdk)连接起来。我正在尝试将操纵杆与它连接起来。当我查看代码时似乎没有主要功能,但我可能错了(比如,我可能不会查看正确的文件)。我知道编程,指针和东西,类。为了达到我想要的目的,我有什么应该学习或进入的吗?

4 个答案:

答案 0 :(得分:4)

在极少数情况下,在编译单元之间共享数据是个坏主意。编译单元,为了让您快速掌握C ++术语,通常有效地引用实现文件(扩展名为.cpp或.cc等)。我们让各种编译单元相互“通信”的方式是使用头文件和函数,而不是原始数据。

假设我们有一个实现文件main.cc和第二个实现文件human.cc。我们希望main.cc与human.cc进行通信。我们走了:

// main.cc
#include "human.hh"
int main()
{
    make_the_human_dance(60);
    return 0;
}


// human.hh
void make_the_human_dance(int duration);


// human.cc
#include "human.hh"
void make_the_human_dance(int duration)
{
    // define how a human dances properly
    // ...
}

根据相同的原则,您可以使用类进行通信。在头文件中声明该类,并在实现文件中定义类的方法。有时候你必须在头文件中提供函数的实现,但这已经是offtopic了。

答案 1 :(得分:3)

您可以在头文件中声明一个全局变量,如下所示:

extern int GlobalVar;

在一个编译单元(cpp-file)中,你必须初始化它:

int GlobalVar = 5;

包含标题的任何其他编译单元现在共享全局变量的相同实例(我希望语法正确,我很少使用它)。

值得一提的是,您的问题表明对如何组织C ++中的程序普遍缺乏了解。简而言之,您通常会有一个名为main.cpp的文件,其中包含程序的入口点。其余的,在C ++中,大部分时间都是在类中完成的。一个类通常分为两部分,即header file中类的声明,以及cpp file中类的实现。要使用类,请包含相应的header file。这是简短的版本,还有更多要说明的内容,但这应该会给你一个很好的起点。

答案 2 :(得分:0)

通常在一个cpp文件中定义一个函数,然后在头文件中将该函数声明为extern,并在任何其他cpp文件中包含头文件以使用该函数。然后,您可以编写正常调用函数的代码。在链接时,您需要提供由两个cpp文件生成的目标文件,并且链接器...将它们链接在一起,因此当您调用另一个cpp中定义的函数时,一个文件中的函数调用正确传递值文件。

答案 3 :(得分:0)

引用不同文件中的代码通常会使用#include