【问题标题】:C++ - Method overloading over different classesC++ - 不同类的方法重载
【发布时间】:2014-01-03 02:27:26
【问题描述】:

所以有一个 smtp 服务器的练习..

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

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

1) 函数重载实际上是如何在许多类上工作的?我必须涉及继承吗?

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

旁注: 命令如下:

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

【问题讨论】:

    标签: c++ smtp overloading


    【解决方案1】:

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

    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 的工作只是设置各种对象并调用它们的函数来完成程序的实际工作。

    【讨论】:

      猜你喜欢
      • 2015-12-04
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      相关资源
      最近更新 更多