2012-04-10 5 views
2

Webサーバーの既存のコードを見ると、main.ccファイルとサーバークラスのとserver.ccペアがあることがわかります。C++のサーバーインスタンスのグローバル変数

// 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を定義していないのはなぜですか?

このコーディングスタイルの長所と短所は何ですか?メンテナンスのために

+0

経験則:実際には必要ない場合は、グローバルまたはポインタを使用しないでください。 –

答えて

0

EDIT

。直感的にはの定義がserver.ccにあります。変数が1つだけの場合、その利益は直接表示されません。しかし、数十の変数があるとします。このスタイルでは、定義を探す場所を正確に知ることができます。

+0

それは変数定義であり、クラス定義ではありません。 –

+0

@CatPlusPlusあなたが正しいですよ。私は私の答えを編集しました。 –

0

coutオブジェクトiostream libに類似していると思います。たいていの場合、ostreamクラスのオブジェクトは1つしかないので、一度目に見えるように作成するのはなぜですか(iostremが含まれています)?

関連する問題