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

C++ C++;-不同类上的方法重载,c++,smtp,overloading,C++,Smtp,Overloading,因此,有一个smtp服务器的练习 为每个命令定义一个类[HELO、MAIL FROM、RCPT TO、, 数据]。这些类应该是不可变的,因此必须接受所有 在构造函数中生成命令所需的参数。 另外,创建一个具有send()函数的SMTPServer类 返回void并重载四次,每个命令一次 我对什么是函数重载有很好的了解,但是我不太了解某些部分: 1) 函数重载实际上是如何在许多类上工作的?我必须继承遗产吗 2) 为什么要在SMTPServer中创建send()函数呢?我假设所需要的只是在main中创

因此,有一个smtp服务器的练习

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

我对什么是函数重载有很好的了解,但是我不太了解某些部分:

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

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

旁注: 命令如下:

  • HELO后跟一个标识字符串
  • 邮件发件人,后跟收件人的电子邮件地址
  • RCPT收件人,后跟发件人的电子邮件地址
  • 主题和电子邮件内容后面的数据
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就是这样工作的——您将程序的每个职责封装到一个类()中。在这种特殊情况下,SMTPServer负责通信命令。
main
的工作只是设置各种对象并调用它们的函数来完成程序的实际工作