所以有一个smtp服务器的运动..
为每个命令定义一个类[HELO,MAIL FROM,RCPT TO, 数据]。这些类应该是不可变的,因此必须全部 在构造函数中构建命令所需的参数。 此外,创建一个具有send()函数的SMTPServer类 返回void并重载四次,每个命令一次。
我很清楚函数重载是什么,但是我不太了解某些部分:
1)函数重载如何在多个类中实际工作?我必须参与继承吗?
2)为什么要在SMTPServer中创建send()函数呢?我假设所需要的只是在main中创建每个命令的实例并发送所需的内容。
旁注: 命令如下:
答案 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
的工作就是设置各种对象并调用它们的函数来完成程序的实际工作。