C ++中函数的多重定义

时间:2013-09-20 07:16:09

标签: c++ c-preprocessor

我遇到了一个非常不寻常的问题:

我不断在班上得到多个函数定义。

这是我的主要.cpp

#include <iostream>
#include "Calculation.cpp"

using namespace std;

int main()
{
    cout << "Hello world!" << endl;
    return 0;
}

这是我的班级.h

#ifndef CALCULATION_H_INCLUDED
#define CALCULATION_H_INCLUDED

class Calculation
{
  public:
  Calculation();
  private:

};
#endif // CALCULATION_H_INCLUDED

这是我的实现文件.cpp

#include "Calculation.h"

Calculation::Calculation()
{

}

请帮帮我;我试图创建一个新项目,但这没有帮助。

感谢所有帮助。

2 个答案:

答案 0 :(得分:5)

使你的main.cpp像:

#include <iostream>
#include "Calculation.h"  // not Calculation.cpp

using namespace std;

int main()
{
    cout << "Hello world!" << endl;
    return 0;
}

答案 1 :(得分:0)

你必须在main.cpp中包含你的Calculation.h,你必须按如下方式编译它,

  g++ main.cpp Calculate.cpp -o main -I<path for your .h file>

的main.cpp

  #include<iostream>
  #include "Calculation.h"
  //using namespace std; // Avoid this, always to use std::cout .. etc on place

  int main()
  {
      Calculation c; //Creating the object of Calculation class
      std::cout<<"Hello World!"<<std::endl;
      return 0;
  }