为什么我们需要构造函数 C++,我们可以通过函数(初始化数据或访问私有数据成员)来做同样的事情



请用一个完美的例子给出答案。在下面的程序中,为什么我们需要构造函数,而我们可以通过函数做同样的事情。(假设我们通过 main() 传递一些值)

#include<iostream>
using namespace std;
class name {
private:
int roll_num;
char grade;
public:
void set_roll(int data);      /* function to get the values of roll num and grade */
void set_grade(char grade_1);
void display(void);
.
.
name(int ..., char ....)      /* constructor for the same thing as function doing */

一些成员需要在初始化时设置,如果要设置类的常量成员,则必须在构造函数中完成,例如:

class A{
    const int a;
    A(int b):a(b){}
};

构造函数允许您将类类型对象视为不透明值,而无需了解或维护其内部。

请考虑以下示例:

std::vector<std::string> v;
void save(std::string s)
{
    v.push_back(std::move(s));
}

我们可以调用这个函数作为 save("Hello world") ,我们可以将参数视为不透明。这是因为类std::string具有构造函数,这些构造函数执行必要的操作来创建内部状态并将状态传输到向量中的元素。用户永远不需要知道这一点,也不负责保持内部状态一致。

对象不仅仅是它们的状态。它们还定义了修改状态的方法。构造函数是其中的基本组成部分。

构造函数在创建时准备新对象。 它可用于将变量设置为默认值或用户输入参数。

使用函数说,设置变量值,将需要额外的步骤。 这可以在对象创建期间通过包含参数值来完成。

相关内容

最新更新