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



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

caller.o: In function 'main':
caller.cpp:(.text+0x15): undefined reference to 'Reader::Reader(int)'
collect2: ld returned 1 exit status

读卡器.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;
 }

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

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

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

这可以在一个步骤中完成:

gcc Reader.cpp main.cpp

或者分两个单独的步骤:

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

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

最新更新