C++ c+中getter setter和构造函数之间的差异+;?

C++ c+中getter setter和构造函数之间的差异+;?,c++,visual-c++,c++-cli,C++,Visual C++,C++ Cli,getter setter函数和构造函数之间有什么区别?我认为,因为getter setter和构造函数的目标都是初始化类中的私有成员变量。我有点困惑,因为他们都在做同样的事情。是否有一种特定的情况下,每一个it都可以使用,或者它们可以互换使用 在计算机科学中,变异方法是一种用于控制的方法 对变量的更改。它们也被广泛称为setter方法。 通常setter由getter(也称为访问器)陪同, 它返回私有成员变量的值 在面向对象编程中,为了保持 采用封装原理。根据这一原则,, 类的成员变量被设置

getter setter函数和构造函数之间有什么区别?我认为,因为getter setter和构造函数的目标都是初始化类中的私有成员变量。我有点困惑,因为他们都在做同样的事情。是否有一种特定的情况下,每一个it都可以使用,或者它们可以互换使用

在计算机科学中,变异方法是一种用于控制的方法 对变量的更改。它们也被广泛称为setter方法。 通常setter由getter(也称为访问器)陪同, 它返回私有成员变量的值

在面向对象编程中,为了保持 采用封装原理。根据这一原则,, 类的成员变量被设置为私有以隐藏和保护它们 来自其他代码,并且只能由公共成员函数修改 (mutator方法),它将所需的新值作为 参数,可选地对其进行验证,并修改私有成员 变数

与构造函数的定义相比:

在面向对象编程中,构造函数(有时简称为 类中的一种特殊类型的子例程,用于创建 对象它准备使用新对象,通常接受参数 构造函数用来设置所需的成员变量的

构造函数类似于实例方法,但与方法不同 因为它没有显式的返回类型,所以它不是隐式继承的 对于范围修饰符,它通常有不同的规则。建设者 通常与声明类具有相同的名称。他们的任务是 初始化对象的数据成员并建立 类的不变量,如果该不变量无效,则失败。A. 正确编写的构造函数将结果对象保留在有效的 国家。不可变对象必须在构造函数中初始化

因此,使用这些定义,我们可以推断如下:

  • 构造函数初始化对象的数据成员(很像setter)——即将对象的数据成员设置为某个初始值——但这仅在实例化时完成
  • setter用于在对象生命周期内的任何时间修改数据成员的值
  • getter用于在对象生命周期内的任何时间访问数据成员的值

  • 实例的构造函数只调用一次。可以在对象生命周期的任何时候调用getter/setter。构造函数用于初始化对象,而setter用于为其更动态的成员维护对象状态(getter将用于访问该状态)。

    而构造函数用于初始化实例变量,即为它们提供其第一个(初始)值,setter方法用于以后更改它们。getter用于检索它们拥有的当前值。

    构造函数初始化您正在创建的实例。
    当对象(类的实例)被删除时调用析构函数

    getter用于获取属性的值。
    setter用于设置属性的值

    Example *ex = new Example();        // Constructor is called
    char *ch = ex->getSomeProperty();   // Getter is called
    ex->setSomeProperty("parameter");   // Setter is called with a passed argument
    delete ex;                          // Destructor is called
    

    Example*ex=newexample()