我对编程很新,并且遇到了一些问题。我创建了一个简单的购买计划作为大学任务。赋值的任务之一是为我创建的三个类中的每一个使用单独的文件。问题出在这里,这些类方法中至少有一个使用main也使用的全局函数。当我尝试将类和类方法迁移到单独的文件时,会给出重复错误。有什么方法可以解决这个问题吗?
实施例
a.h //类a的标题
class A
{
void example1(); //global function used in class a
};
//end of class header
a.cpp
void a::example1()
{
example(); //global function used in both class a and main
}
//end of class cpp
program.cpp
void example() //global function used in both class a and main
{
//do something
}
int main()
{
example(); //global function used in main
}
答案 0 :(得分:4)
将函数声明放在头文件中,并将相应的函数定义放在.cpp文件中:
<强> lib.h:强>
#ifndef H_LIB
#define H_LIB
void foo(); // declaration
#endif
<强> lib.cpp:强>
#include <iostream>
#include "lib.h"
// definition
void foo()
{
std::cout << "foo() called\n";
}
<强> main.cpp中:强>
#include "lib.h"
int main()
{
foo(); // use
}
<强>汇编:强>
g++ -W -Wall -Wextra -pedantic -std=c++14 lib.cpp main.cpp -o prog