多文件项目中的全局功能?

时间:2017-03-28 22:32:28

标签: c++ c++11

我对编程很新,并且遇到了一些问题。我创建了一个简单的购买计划作为大学任务。赋值的任务之一是为我创建的三个类中的每一个使用单独的文件。问题出在这里,这些类方法中至少有一个使用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
}

1 个答案:

答案 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