-5

请用一个完美的例子给出答案。在下面的程序中,为什么我们需要构造函数,而我们可以通过函数来​​做同样的事情。(假设我们通过 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 */
4

3 回答 3

5

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

class A{
    const int a;
    A(int b):a(b){}
};
于 2013-09-11T16:00:02.950 回答
2

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

考虑这个例子:

std::vector<std::string> v;

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

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

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

于 2013-09-11T16:03:31.387 回答
1

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

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

于 2013-09-11T16:03:57.920 回答