繁体   English   中英

C ++使用默认值作为参数

[英]C++ Using default values for parameters

我是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 ++如何做到这一点的解释吗?

在.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)
{

}

也就是说,默认参数在原型中,而不在实际定义中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM