0

コードには次の構造があります。

while (x > 0) {
     something;
     aaa::bbb::ccc some_name(
        x,
        y
     );
}

私は何を理解できませんaaa::bbb::ccc some_name(。関数の呼び出しである場合、なぜその時間を指定する必要があるのでしょうかaaa::bbb::ccc。関数の宣言なら、なぜ while ループで行い、引数の型を指定しないのですか?

4

3 に答える 3

3

関数呼び出しで戻り値のタイプを指定しないため、これが関数呼び出しである可能性はありません。

Pubbyが指摘しているように、それはオブジェクト定義である可能性が非常に高いです。some_nameタイプとaaa::bbb::cccパスのオブジェクトを定義し、コンストラクターに渡します。xy

于 2013-03-12T08:48:12.040 に答える
2

この特定のケースでは、引数およびを使用して 2 つのパラメーターのコンストラクターを呼び出すことにより、おそらくsome_nametype のオブジェクトを構築しています。aaa::bbb::cccxy

ループで実行される理由は、オブジェクトがそのコンストラクターおよび/またはデストラクターで何らかの有用な作業を行うためです (たとえば、何らかの形式のスコープ ガードである可能性があります)。

于 2013-03-12T08:53:06.490 に答える
0

あなたが何をしているのかよくわかりませんが、

::

C++ では と呼ばれ、、またはクラス メンバーscope-operatorにアクセスするために使用されます。namespacesvariables in namespacesstatic

通常、関数の宣言と定義は、関数とメソッドの外に表示されます。したがって、あなたのコードは意味がありません。

scope-operatorについてはこちらをご覧ください。そして、宣言と定義についてはこちら。

于 2013-03-12T08:53:00.733 に答える