让一个.cpp文件与class.cpp和class.h文件通信

时间:2016-04-16 00:45:16

标签: c++ file class compilation

我不知道Dice.h和Dice.cpp的正确语法与我的最终game.cpp文件交谈。

我收到一个编译错误,它返回对Dice :: Dice()

的未定义引用

以下是我的3个文件标题

Game.cpp

#include "Dice.h"
#include <iostream>

using namespace std;

int main()
{ int sum;
  Dice dice1;
  Dice dice2;
      dice1.roll();
      dice2.roll();
      sum = dice1.getFace() + dice2.getFace();
      cout << sum;

  return 0;

}

Dice.h

#include <iostream>
#include <cassert>
#include <cstdlib>
#include <ctime>


// definition of class Dice
class Dice //... cont

Dice.cpp

#include "Dice.h"
using namespace std;


Dice::Dice() //... cont 

我通过输入g ++ -Wall -o game game.cpp进行编译时出错 这是编译多个文件的正确方法吗?

2 个答案:

答案 0 :(得分:1)

仅仅因为你在文件中包含了包含并不意味着它们将被编译在一起。

尝试g ++ -Wall -o游戏Dice.cpp Game.cpp

......我可能在命令上有点不对,但这应该有效

请注意,您应该仔细研究Makefile。让事情变得如此简单。

答案 1 :(得分:0)

另一个答案很接近,但略有偏离。输入

++ -Wall -o game game.cpp Dice.cpp

确保游戏是小写的,我认为包含main()的文件需要先行。