class a{
int a1;
int a2;
public:
void method1(int a1){
//do smth with a1
}
void method2(int a2){
//do smth with a2
}
};
此外,在示例 2 和 3 中,您可能会通过将错误的参数传递给方法而导致调用错误,例如:
a aexample;
aexample.method(aexample.a1,false);//ошибка в вызове в примере 2
另一个传递参数错误的例子:
a aexample;
aexample.method1(aexample.a2);//ошибка в вызове в примере 3
在示例 1 中,调用中的参数不匹配错误是不可能的:
a aexample;
aexample.method1();//невозможно сделать ошибку в вызове метода1 в примере 1
aexample.method2();//невозможно сделать ошибку в вызове метода2 в примере 1
这不是被禁止的,但它是对 C 语言的倒退。如果它对您来说更具可读性,那么您可以这样做。但是,大多数人不这么认为,否则大家早就这么做了。通过方法的思想,该方法与相同的数据字段一起工作,并且不需要在方法参数中传递该字段。相比:
每个人都这样做,这就是类和方法的含义:
没有人这样做:
也没有人这样做,只是因为传递了一个额外的参数,这需要时间(非常著名的惩罚性能),并且参数总是以相同的方式传递:
此外,在示例 2 和 3 中,您可能会通过将错误的参数传递给方法而导致调用错误,例如:
另一个传递参数错误的例子:
在示例 1 中,调用中的参数不匹配错误是不可能的:
鉴于调用次数多,方法一次编写,出错的概率大大增加。
此外,对于显式传递参数,数据字段不应该是私有的,而是公共的,这也是不鼓励的。
总之,我们可以说将数据字段显式传递给方法是没有意义的。在类和类方法的概念中,C++ 语言提供了更简洁、更快捷的方式来访问类数据字段。