C++相当于Python的__init__

C++ equivalent of Python's __init__

本文关键字:init Python 相当于 C++      更新时间:2023-10-16

在学习用C++编码时,在很多情况下,当我声明类时,我需要运行代码,例如给变量值。我知道在 Python 中你可以只使用__init__,但是我该如何在C++中做到这一点?

C++中 Python 的__init__方法的等价物称为构造函数。两者的作用是初始化/构造可用的类实例。不过,也有一些不同之处。

  • 在Python中,数据成员在__init__中初始化,而在C++中,它们应该使用初始值设定项列表进行初始化。

  • 在C++中,构造函数默认链接到父类的默认构造函数,而在 Python 中,您必须显式调用父__init__,最好通过super()

  • C++允许函数重载,从而扩展到构造函数。这允许声明具有不同签名(参数列表(的不同构造函数。要在 Python 中执行相同的操作,您必须将__init__声明为接受*args,**kwargs并根据这些进行手动调度。

  • 在C++中,有空间类型的构造函数,即默认构造函数,复制构造函数和移动构造函数。

蟒:

class Foo:
def __init__(self, x):
self.x = x
print "Foo ready"

C++:

class Foo {
public:
int x;
Foo(int x) : x(x)
{
std::cout << "Foo readyn";
}
};