У меня есть вопрос, связанный с тем, как создать класс с использованием объектно-ориентирующих языков, таких как C++. Во многих случаях переменные могут быть назначены членам класса или аргументам функции. Я даю следующие примеры, чтобы сделать мою точку ясно:Член класса vs аргумент функции
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 имеет такое свойство или атрибут? – billz