在学习用 C++ 编写代码时,在很多情况下,我需要在声明类时运行代码,例如给变量值。我知道在 Python 中你可以只使用__init__,但是我将如何在 C++ 中做到这一点?
__init__C++中 Python方法的等价物称为构造函数。两者的作用是初始化/构造类的实例以使其可用。不过也有一些不同。
在 Python 中,数据成员在 内部初始化__init__,而在 C++ 中,它们应该使用初始化列表进行初始化。
在 C++ 中,构造函数默认链接到父类的默认构造函数,而在 Python 中,您必须显式调用 parent __init__,最好通过super().
C++ 允许函数重载,它扩展到构造函数。这允许声明具有不同签名(参数列表)的不同构造函数。要在 Python 中执行相同的操作,您必须声明__init__为接受*args,**kwargs并基于这些进行手动调度。
Python:
class Foo:
def __init__(self, x):
self.x = x
print "Foo ready"
Run Code Online (Sandbox Code Playgroud)
C++:
class Foo {
public:
int x;
Foo(int x) : x(x)
{
std::cout << "Foo ready\n";
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3025 次 |
| 最近记录: |