gpt4 book ai didi

c++ - 静态函数对类构造的好处

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:53:25 25 4
gpt4 key购买 nike

我见过这样的代码,所以我想找原因。 使用充当构造函数而不是实际构造函数的静态函数的主要原因是什么?

我的意思是:

class MyClass
{
public:
static MyClass CreateFrom( bar );
static MyClass CreateFrom( foo );
...
}

代替:

class MyClass
{
public:
MyClass( bar );
MyClass( foo );
...
}

最佳答案

这被称为“命名构造函数惯用语”。

通常在以下情况下使用:

  1. 您有很多具有足够相似参数列表的 ctors,重载的 ctors 会造成混淆(例如,整数和 float 的不同混合,因此 1, 1.0, 1 应该表示与 1, 1, 1.0 不同的东西)。
  2. 您有两个不同的来源,它们都提供相同类型的输入。例如,假设您想要将地球表面上的距离转换为相隔一定距离的点之间所夹的角度——但您可能想要以英里或公里为单位提供距离,其中任何一个都将表示为

在这种情况下,单个 angle(double dist) 无法区分以公里和英里为单位的输入,但是:angle_from_milesangle_from_kilomters 可以很容易地做到这一点。

关于c++ - 静态函数对类构造的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18118171/

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