我不确定这是否可行,因为我是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
}
我知道这可以用于头文件,但由于已经初始化的命令,它似乎会引发错误。
提前致谢!
答案 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
}