Visual Studio 2012を使用しています(ただし、VC ++ 2010ビルドツールを使用しています)。クラスで定義されたこれらの2つのオーバーロードされた関数(以下の署名)があり、後で最初のクラス(以下も参照)をインスタンス化する別のクラスで呼び出します。
Defined in the class:
Node CreateNode(Node *parent,string name,string node_text,bool expects_node = true);
Node CreateNode(Node *parent,string name, string attribute, string value,bool expects_node = true)
Calling these functions in the macro:
Node axis1 = handler->CreateNode(&sparse,"axis","id","trigger_pt");
関数を呼び出すと、2番目ではなく、最初の関数が呼び出されます。したがって、2番目の文字列はブール値として扱われます。ただし、関数呼び出しに「true」を追加すると、期待どおりに2番目の関数が呼び出されます。誰かがこれを説明できますか?ありがとう!