我刚刚创建了这个简单的类。当我编译时,我收到以下错误。
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;
}
答案 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);
}