getter setter函数和构造函数之间有什么区别?我认为因为getter setter和构造函数目标都是在类中初始化私有成员变量。我有点困惑,因为他们都在做同样的事情。是否存在使用它们的特定情况,或者它们是否可以互换使用?
答案 0 :(得分:1)
构造函数用于初始化实例变量,即为其提供第一个(初始)值, setter 方法用于<稍后强烈>改变。 Getters 用于检索他们拥有的当前值。
答案 1 :(得分:0)
Wikipedia answers your question about getters
and setters
quite nicely:
在计算机科学中,mutator方法是一种用于控制的方法 变量变化。它们也被广泛称为setter方法。 通常情况下,定位器附有吸气剂(也称为存取器), 它返回私有成员变量的值。
mutator方法最常用于面向对象的编程中 用封装原理。根据这个原则, 类的成员变量是私有的,以隐藏和保护它们 来自其他代码,只能由公共成员函数修改 (mutator方法),它将所需的新值作为a 参数,可选地验证它,并修改私有成员 变量
并将其与构造函数的定义进行比较:
在面向对象的编程中,构造函数(有时缩写为 ctor)在一个类中是一种特殊类型的子程序,用来创建一个 宾语。它准备新对象以供使用,通常接受参数 构造函数用于设置所需的成员变量。
构造函数类似于实例方法,但它与方法不同 因为它没有显式的返回类型,所以它不是隐式继承的 它通常对范围修饰符有不同的规则。构造函数 通常与声明类具有相同的名称。他们的任务是 初始化对象的数据成员和建立 类的不变量,如果不变量无效则失败。一个 正确编写的构造函数将结果对象保留为有效 州。必须在构造函数中初始化不可变对象。
因此,使用这些定义我们可以推断出以下内容:
答案 2 :(得分:0)
实例的构造函数只调用一次。可以在对象的生命周期中的任何时刻调用getters / setter。构造函数用于初始化对象,而setter用于维护其更动态成员的对象状态(并且getter将用于访问该状态)。
答案 3 :(得分:0)
构造函数初始化您正在创建的实例 当对象(类的实例)被删除时,析构函数被调用。
Getters用于获取属性的值 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