为什么我们需要 OOP 中的构造函数?

Arj*_*ier 3 oop methods constructor

我是 OOP 的新手。我还处于学习阶段。

为什么需要构造函数,何时可以通过编写“初始化函数”来初始化属性(变量)的值?

基本上,当我们甚至通过编写用于初始化变量的函数也可以获得相同的结果时,为什么还要编写构造函数呢?

Jon*_*ory 8

构造函数是“初始化函数”

而不是调用两个函数

object = new Class;
object.initialize();
Run Code Online (Sandbox Code Playgroud)

你只要打电话

object = new Class();
Run Code Online (Sandbox Code Playgroud)

构造函数内部的逻辑可以与 initialize 函数内部的逻辑相同,但它更整洁,避免你命名你的函数 initialize(),我命名我的 initialize_variables(),而其他人命名他们的 init_vars()...一致性是有用。

如果您的构造函数非常大,您可能仍然希望将变量初始化拆分为一个单独的函数并从您的构造函数调用该函数,但这是该场景的一个特定例外。


小智 5

所以答案很简单
为什么我们要写构造函数?
因为在 C 中你可以写, int i;

如果像这样写在上面的情况下,数据类型和变量定义了是否像这样定义为i变量分配的内存。所以在这里我们定义类名和变量名(对象名)很简单,我们可以创建为类名分配的内存。

示例 myClass objectName;

但是在 C++ 中 new 关键字用于动态内存分配,所以我们可以分配给我们的类的动态内存,但这里我的例子myClass是我们的类,我们想要分配给已分配的动态内存。

所以

myClass objectName = new myClass();

并且简单的构造函数是类变量的内存分配称为构造函数。`