我刚刚创建了这个简单的类。当我编译时,我会得到以下错误。
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)来为您处理这件事。