2

在查看 Web 服务器的一些现有代码时,我看到服务器类有一个main.cc文件和另一个server.h文件server.cc

// main.cc
#include "server.h"
int main() {
  foo::server = new foo::Server();
  server->Serve();  // runs forever
}

// server.cc
namespace foo {
  Server *server;

  // class member definitions ...
}

是否有充分的理由不只foo::Server *server在 main 中定义?

这种编码风格的优缺点是什么?

4

2 回答 2

0

编辑

用于维护。很直观,您有foo::serverin的定义server.cc。如果您只有一个变量,则收益不会直接可见。但是假设你有几十个变量。使用这种风格,您可以确切地知道在哪里寻找定义。

于 2012-04-10T19:55:32.987 回答
0

我认为这类似于在lib中声明的cout 对象。iostream大多数时候只有一个ostream类对象,那么为什么不创建它一次可见的everywere(iostrem包括在哪里)?

于 2012-04-10T19:56:04.987 回答