大家好,我目前正在编写一个可更改边框颜色的函数。void ChangeColor(D3DXVECTOR4 xColorLeft, D3DXVECTOR4 xColorRight, D3DXVECTOR4 xColorTop, D3DXVECTOR4 xColorBot);
现在一切都很好,但是我想让我的用户更易于使用,例如,如果ChangeColor
用NULL值调用,它不会改变任何内容。
例:ChangeColor(D3DXVECTOR4(0.0f, 0.0f, 0.0f, 1.0f), NULL, NULL, NULL);
通过此函数调用,我将更改左边框的颜色,但是由于在其他边框上调用了NULL,因此我将其保留为默认值。当我尝试此调用时,出现有关包含ints
的重载方法的错误。
如果不使用任何方法,例如ChangeColorLeft
等,这是否可能?如果是这样,我该怎么做?
先感谢您。
最佳答案
令人高兴的是,D3DXVECTOR4是一组四个浮点数,它们支持NAN等魔术值。那么呢:
const D3DXVECTOR4 NoColor(NAN, NAN, NAN, NAN);
void ChangeColor(
D3DXVECTOR4 xColorLeft = NoColor,
D3DXVECTOR4 xColorRight = NoColor,
D3DXVECTOR4 xColorTop = NoColor,
D3DXVECTOR4 xColorBot = NoColor);
然后,您只需检查内部是否每个参数都是NAN,如果是,就不要更改该参数。
关于c++ - 函数参数:也接受空值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19834705/