在学习C++编程时,我经常需要在声明类时运行代码来给变量赋值。我知道在Python中可以使用__init__
,但在C++中该怎么做呢?
__init__
方法相当的是构造函数。两者的作用都是初始化/构造类的实例以便使用。不过也有一些区别。
在Python中,数据成员是在__init__
中初始化的,而在C++中应该使用初始化列表进行初始化。
在C++中,默认情况下,构造函数会链接到父类的默认构造函数,而在Python中,您必须显式调用父__init__
,最好通过super()
进行调用。
C++允许函数重载,这也适用于构造函数。这允许声明具有不同签名(参数列表)的不同构造函数。要在Python中执行相同的操作,您必须将__init__
声明为接受*args,**kwargs
并根据这些手动分派。
Python:
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 ready\n";
}
};
__init__
在类被声明时不会运行。它只会在创建该类的新实例时运行。 - el.pescado - нет войне