未定义引用C ++中的析构函数错误? [英] Undefined reference to destructor error in c++?

查看:305
本文介绍了未定义引用C ++中的析构函数错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里是类

class Email{
private:
    char to[100];
    char from[100];
    char subject[200];
    char body[1000];

public:
    Email();
    Email(char *za,char *od,char *tema, char *telo){
    strcpy(to,za);
    strcpy(from,od);
    strcpy(subject,tema);
    strcpy(body,telo);
    }
    ~Email();
    void setTo(char *to) {strcpy(this->to,to);}
    void setFrom(char *from) {strcpy(this->from,from);}
    void setSubject(char *subject) {strcpy(this->subject,subject);}
    void setBody (char *body) {strcpy(this->body,body);}
    char* getTo () {return to;}
    char* getFrom () {return from;}
    char* getSubject () {return subject;}
    char* getBody () {return body;}
    void print () {
    cout<<"To: "<<to<<endl<<"From: "<<from<<endl<<"Subject: "<<subject<<endl<<body;
    }
};

,如您所见,它包含一个析构函数。程序的其余部分只是一个功能和主要功能。

and as you can see it includes a destructor. The rest of the program is just one function and main.

int checkEmail(char *p){
int n=0,i=0;
while(p[i]!='\0')
{if(p[i]=='@')
n++;
i++;}
if(n==1)
    return 1;
else return 0;
    }

int main()
{
    char od[100],za[100],tema[200],telo[1000];
     cout<<"Za: ";
    cin>>za;
    if(checkEmail(za)){
    cout<<"Od: ";
    cin>>od;
    cout<<"Tema: ";
    cin>>tema;
    cout<<"Poraka: ";
    cin>>telo;
    Email o(od,za,tema,telo);
    cout<<"Isprateno: ";
    o.print();
}
     else cout<<"Pogresna adresa!";
}

出现错误


  1. obj\Debug\main.o ||在函数 main中:|

  2. C:\Users\Stefan\Desktop \EMail\main.cpp | 58 |未定义对`Email ::〜Email()'|
  3. 的引用
  4. C:\Users\Stefan\Desktop\EMail\ \main.cpp | 58 |未定义对`Email ::〜Email()'|
  5. 的引用
  6. || ===构建完成:2错误,0警告(0分钟,1秒) )=== |

  1. obj\Debug\main.o||In function `main':|
  2. C:\Users\Stefan\Desktop\EMail\main.cpp|58|undefined reference to `Email::~Email()'|
  3. C:\Users\Stefan\Desktop\EMail\main.cpp|58|undefined reference to `Email::~Email()'|
  4. ||=== Build finished: 2 errors, 0 warnings (0 minutes, 1 seconds) ===|

在包含o.print()的行中;
那是什么?也可以。告诉我如何突出显示代码中的某些行?

in the line containing o.print(); So what is it? Also can sb. tell me how to highlight some lines in my code?

推荐答案

您要声明析构函数;

~Email();

...但未为其定义主体。也许是您的意思;

...but not defining a body for it. Maybe you mean;

~Email() { }

...还是在没有功能的情况下将其保留?

...or to just leave it out if it has no functionality?

(您还缺少一个默认构造函数的主体声明)

(You're also missing a body declaration for your default constructor)

这篇关于未定义引用C ++中的析构函数错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆