一个getter的方法不一定能得到成员的值?
A getter method that doesn't necessarily get a member's value?
假设我有一个包含数组的 C++ class。
例如这个class的一个成员函数,可以是return某个索引处的值。我相信这会被视为一种 getter 方法。
但是,您如何 class 验证一个类似的函数,而不是简单地 return 一个布尔值,它基于值 是否存在 在数组中?
这个函数是 'getting' 的东西,但不一定是 class 成员的值。这仍会被视为 getter 方法吗?
真的重要吗?考虑这个界面:
struct Adder {
Adder(int a,int b);
int get_sum();
};
对于这个 class 的用户来说,实现是否是这样根本不重要:
struct Adder {
Adder(int a,int b) : a(a),b(b) {}
int get_sum() { return a+b; }
private:
int a,b;
};
或者这个:
struct Adder {
Adder(int a,int b) : c(a+b) {}
int get_sum() { return c; }
private:
int c;
};
第二个 return 是一个成员,根据您的定义,它将是一个 "getter" 方法。第一个没有,但这是否意味着它不是真正的 "getter" 方法?该方法实际上 return 是一个成员还是其他东西是一个实现细节,对调用者来说无关紧要,也不应该影响您为该方法指定的名称。
假设我有一个包含数组的 C++ class。
例如这个class的一个成员函数,可以是return某个索引处的值。我相信这会被视为一种 getter 方法。
但是,您如何 class 验证一个类似的函数,而不是简单地 return 一个布尔值,它基于值 是否存在 在数组中?
这个函数是 'getting' 的东西,但不一定是 class 成员的值。这仍会被视为 getter 方法吗?
真的重要吗?考虑这个界面:
struct Adder {
Adder(int a,int b);
int get_sum();
};
对于这个 class 的用户来说,实现是否是这样根本不重要:
struct Adder {
Adder(int a,int b) : a(a),b(b) {}
int get_sum() { return a+b; }
private:
int a,b;
};
或者这个:
struct Adder {
Adder(int a,int b) : c(a+b) {}
int get_sum() { return c; }
private:
int c;
};
第二个 return 是一个成员,根据您的定义,它将是一个 "getter" 方法。第一个没有,但这是否意味着它不是真正的 "getter" 方法?该方法实际上 return 是一个成员还是其他东西是一个实现细节,对调用者来说无关紧要,也不应该影响您为该方法指定的名称。