C ++ - 在不同类上重载的方法

时间:2014-01-03 02:27:27

标签: c++ smtp overloading

所以有一个smtp服务器的运动..

  

为每个命令定义一个类[HELO,MAIL FROM,RCPT TO,   数据]。这些类应该是不可变的,因此必须全部   在构造函数中构建命令所需的参数。   此外,创建一个具有send()函数的SMTPServer类   返回void并重载四次,每个命令一次。

我很清楚函数重载是什么,但是我不太了解某些部分:

1)函数重载如何在多个类中实际工作?我必须参与继承吗?

2)为什么要在SMTPServer中创建send()函数呢?我假设所需要的只是在main中创建每个命令的实例并发送所需的内容。

旁注: 命令如下:

  • HELO后跟一个识别字符串。
  • MAIL FROM后跟收件人的电子邮件地址。
  • RCPT TO后跟发件人的电子邮件地址。
  • DATA后跟主题和电子邮件内容。

1 个答案:

答案 0 :(得分:1)

1)不,你不涉及继承 - 他们要求你重载send类的SMTPServer成员函数,以便每个人都可以使用不同的命令类作为参数:

void SMTPServer::send(HELO command);
void SMTPServer::send(MAIL_FROM command);
void SMTPServer::send(RCPT_TO command);
void SMTPServer::send(DATA command);

2)因为这就是OOP的工作原理 - 你将程序的每个职责都封装到一个类(Single Responsibility Principle)中。在这种特殊情况下,SMTPServer负责传递命令。 main的工作就是设置各种对象并调用它们的函数来完成程序的实际工作。