【发布时间】:2013-06-20 10:25:28
【问题描述】:
我有一个关于如何使用 C++ 等面向对象语言设计类的问题。在许多情况下,变量既可以分配给类成员,也可以分配给函数参数。我举以下例子来说明我的观点:
class MyClass
{
public:
int variable1;
int variable2:
MyClass (int vr1, int vr2)
{
variable1 = vr1;
variable2 = vr2;
}
bool perform_one_task()
{
// do something
return true;
}
}
当我们要使用这个类时,可以使用如下代码:
int a,b;
MyClass mine(a,b);
mine.perform_one_task();
也可以设计一个没有variable1 和variable2 的类。
class MyClass
{
public:
bool perform_one_task(int variabl1, int variable2)
{
// do something
return true;
}
}
在这个类中variable1 和variable2 不是类的成员,而是成为函数的参数。我的问题是第一种设计策略在哪种情况下更可取,第二种设计模式在哪种情况下更好。给定的示例仅假设variable1 和variable2 的结构很小,但是如果它们很大怎么办,例如variable1 可能是一个很大的数据数组。
【问题讨论】:
-
在设计一个类(一个类型)时,总是问自己一个问题:MyClass 有这样的属性或属性吗?