如何在不使用头文件的情况下将另一个C ++文件作为“函数”访问?

时间:2013-09-26 10:57:41

标签: c++

我不确定这是否可行,因为我是C ++的新手,并且已经看到许多程序员专门指示其他程序员不要单独使用一个cpp文件和几个标题。

我的问题是如何从另一个文件中启动/转到c ++文件?很难解释也许这个伪代码更容易理解?

//Within say main.cpp
int main()
{
    StartProgram(); //Uses a series of commands to run 'StartProgram' like StartProgram();
}

//Within StartProgram()
int maintwo()
{
//Unimportant commands
}

我知道这可以用于头文件,但由于已经初始化的命令,它似乎会引发错误。

提前致谢!

2 个答案:

答案 0 :(得分:4)

如果您遇到重复定义问题,则需要在头文件中使用include guard。例如:

// header.hxx
#ifndef HEADER_HXX_
#define HEADER_HXX_

void maintwo();

#endif

如果您不想使用标题,并且想要访问其他源文件中的函数,可以使用extern声明,如下所示:

// file1.cxx
extern void maintwo();

int main()
{
    maintwo();
}

// file2.cxx
#include <iostream>
void maintwo()
{
    std::cout << "maintwo()" << std::endl;
}

但是你必须将它们连接在一起。如果你正在使用GCC编译器,你可以这样做:

> g++ -c file1.cxx
> g++ -c file2.cxx
> g++ file1.o file2.o -o my_program

如果您需要我的建议,只需使用带有包含警卫的头文件,您就不必担心多个声明/定义。

答案 1 :(得分:1)

由于你真的想在没有头文件的情况下使用原型,你可以使用没有原型的函数。

(我建议避免,因为如果你不知道你在做什么,它会打破大部分代码)

或者您可以在定义函数之前执行原型声明。像这样:

void function();

int main ()
{
    function();
}

void function ()
{
     //do some stuff
}