简单的类使用+未定义的引用

时间:2013-12-02 15:55:16

标签: c++

我刚刚创建了这个简单的类。当我编译时,我收到以下错误。

caller.o:在函数main': caller.cpp:(.text+0x15): undefined reference to Reader :: Reader(int)'中 collect2:ld返回1退出状态

Reader.h

#ifndef READER_H
#define READER_H
class Reader
{
 private:
  int m_month;
  Reader() {}
 public:
  Reader(int month);
 void SetDate(int month);
 int GetMonth() {return m_month;}
 };
 #endif

Reader.cpp

#include "Reader.h"
Reader::Reader(int month);
{
  SetDate(month);
}
void Reader::SetDate(int month)
{
  m_month=month;
}

主程序

#include <iostream>
 using namespace std;
#include "Reader.h"
int main()
{ int i;
  i=5;
  Reader rd(i);
  i=rd.GetMonth();
  cout<<i;
  return 0;
 }

2 个答案:

答案 0 :(得分:0)

您需要将所有源文件编译为目标文件,然后将目标文件链接在一起以生成程序。

这可以一步完成:

gcc Reader.cpp main.cpp

或者分两个步骤:

gcc -c Reader.cpp main.cpp
gcc Reader.o main.o

当然,您通常应该有一个IDE,Makefile或构建系统生成器(例如CMake)来为您处理。

答案 1 :(得分:0)

有一个;分号不应该存在。

Reader::Reader(int month)//; remove semicolon from this line !!!
{
    SetDate(month);
}