1

私は(C#のバックグラウンドから)C ++を初めて使用し、次のシグネチャを持つ関数を持っています

 void AddBenchNode(ref_ptr<Group> root ,ref_ptr<Node> benches, bool setAttitude = false, float scale_x =.15, float scale_y =15, float scale_z = 15, int positionx = 250, int positiony = 100, int positionz =0 )
{

}

しかし、以下のようにコードを呼び出そうとすると、関数が4つの引数をとらないというエラーが発生します。

//then I try to call my function like so
AddBenchNode(root, benches, false, 250);

しかし、代わりに次のエラーメッセージが表示されます

エラーC2660:'AddBenchNode':関数は3つの引数を取りません

代わりにC++がこれをどのように行うかについての説明をいただければ幸いです。

4

1 に答える 1

7

.hpp ファイルのプロトタイプを確認してください。おそらく次のように宣言されています

void AddBenchNode(ref_ptr<Group> root ,ref_ptr<Node> benches, bool setAttitude, 
                  float scale_x, float scale_y, float scale_z, int positionx, 
                  int positiony, int positionz);

編集:ヘッダーのプロトタイプは

void AddBenchNode(ref_ptr<Group> root ,ref_ptr<Node> benches, bool setAttitude = false, float scale_x =.15, float scale_y =15, float scale_z = 15, int positionx = 250, int positiony = 100, int positionz =0 );

そして、あなたのcppファイルは

void AddBenchNode(ref_ptr<Group> root ,ref_ptr<Node> benches, bool setAttitude, float scale_x, float scale_y, float scale_z, int positionx, int positiony, int positionz)
{

}

つまり、デフォルトのパラメーターは、実際の定義ではなく、プロトタイプにあります。

于 2012-07-05T14:20:50.457 に答える