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

use*_*347 -1 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
}
Run Code Online (Sandbox Code Playgroud)

我知道这对头文件是可能的,但由于已经初始化的命令,它似乎会抛出错误。

提前致谢!

bst*_*our 5

如果您遇到重复定义的问题,则需要对头文件使用包含保护。例如:

// header.hxx
#ifndef HEADER_HXX_
#define HEADER_HXX_

void maintwo();

#endif
Run Code Online (Sandbox Code Playgroud)

如果您不想使用标头,并且想从其他源文件访问函数,则可以使用如下extern声明:

// file1.cxx
extern void maintwo();

int main()
{
    maintwo();
}

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

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

> g++ -c file1.cxx
> g++ -c file2.cxx
> g++ file1.o file2.o -o my_program
Run Code Online (Sandbox Code Playgroud)

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