当我编写一个类方法并希望将参数传递给此方法时,我常常想知道什么是“更好”。
选项:使用成员变量
class Foo {
public:
int x, y, result;
void SomeMethod()
{
x = 4;
y = 10;
AddMethod();
}
void AddMethod()
{
result = x + y;
}
}
选项:传递参数
class Foo {
public:
int result;
void SomeMethod()
{
result = AddMethod(4, 14);
}
int AddMethod(int x, int y)
{
return (x + y);
}
}
就我个人而言,我通常倾向于使用第二种选择,因为对我来说它更具可读性和易懂性。使用一个或另一个代码的正确理由是什么?
答案 0 :(得分:1)
OOP中的类是描述对象的东西。以现实世界的物体为例,一辆汽车。汽车可以有accelerate_to_speed(double speed);
等功能,还有Color color;
等成员。方法是对象所做的事情,成员描述对象或显示拥有(汽车可以有引擎Engine engine;
)。什么是成员和什么是方法的整个概念在于面向对象编程的基础,并且不依赖于语言,但语言依赖于它。
你仍然可以用这种方式写一辆车:
class Car {
...
double target_speed;
...
void set_target_speed(double speed) {
target_speed = speed;
}
void accelerate_to_speed() {
current_speed = target_speed;
}
...
}
语言可以允许它,但它意味着什么?汽车是用目标速度描述的吗?如果不使用汽车,目标速度意味着什么?
答案 1 :(得分:-3)
这取决于目的,使用此类的内容。成员是对象的一些特征。论证是一种外部信息。
答案 2 :(得分:-3)
选项2可能更适合您,但它不是一个好的编程习惯。通常我们不直接传递数字,我们使用它们的名称来提高代码可读性,因为这些数字指的是我们试图解决的实际项目/问题。但是,w.r.t性能可能会在选项2中保存8个字节。