gpt4 book ai didi

c++ - 构造函数委托(delegate)与默认参数

转载 作者:行者123 更新时间:2023-12-01 14:39:24 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

1年前关闭。




Improve this question




我想知道以下哪些类实现了首选方法:

class foo
{
public:
foo(int a, int b, int c);
foo(int a, int b) : foo(a, b, 0){};
~foo();
//...
};

class bar
{
public:
bar(int a, int b, int c = 0);
~bar();
//...
};

从我的角度来看,他们基本上做同样的事情。我个人更喜欢底部的,因为更少的代码(维护)。但我的偏好是最佳实践吗?

最佳答案

第一个片段会产生更多的输入和潜在的更多维护(例如 a 的类型可能会改变,甚至可能会以破坏重载决议的方式改变)。

所以更喜欢第二种方式。 (尽管请注意某些语言,例如 Java 不允许默认参数)。

编程有一个原则:不要重复自己。

引用:https://en.wikipedia.org/wiki/Don%27t_repeat_yourself

(在参数的另一边,请注意默认参数不是函数签名的一部分:例如,std::function 无法识别它们。所以有时你不得不求助于函数重载)。

关于c++ - 构造函数委托(delegate)与默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61863685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com