未定义的子类参考

时间:2014-02-10 21:39:49

标签: c++ inheritance constructor

我创建了一个名为Document的类,该类应该有一个名为Email的子项。我的Document类工作正常,但我遇到了Email类的构造函数问题。我收到此错误:未定义引用`Email :: Email(std :: string,std :: string,std :: string,std :: string)。

Document构造函数有一个私有成员变量,它是一个名为text

的字符串
///////// Document.cpp /////////
#include <iostream>
#include "Document.hpp"
#include <string>
using std::string;

Document::Document(string t)
{
    text = t;
}

我希望Email类有四个也是字符串的成员变量。其中一个,body,应该存储在继承的文本成员变量中。构造函数看起来像这样

////// Email.cpp //////
#include <iostream>
#include "Email.hpp"
#include "Document.hpp"
#include <string>
using std::string;

Email::Email(string b, string s, string r, string t) :
    Document(b),
    sender(s),
    recipient(r),
    title(t){
}

我很确定电子邮件的头文件是正确的,但万一它不是,它看起来像这样:

///// Email.hpp ////////
#ifndef EMAIL_HPP
#define EMAIL_HPP
#include <string>
#include "Document.hpp"
using std::string;

class Email : public Document{
public:
   Email(string b, string s, string r, string t);
   void print();

private:
    string sender;
    string recipient;
    string title;
};


#endif

在我的单独主要功能中,我然后尝试创建类Email的实例,这是我收到错误的地方

///// main.cpp ///////
#include <iostream>
#include <string>
#include "Document.hpp"
#include "Email.hpp"
using std::string;

int main(){

Email e("Hello", "", "", "");

return 0;
}

我认为我在Email构造函数中有语法错误,但我无法弄清楚出了什么问题。

0 个答案:

没有答案