1

我正在阅读Code Complete并有一个关于“简化参数传递”的问题。作者说,如果您在多个例程之间传递参数,这可能表明需要将这些例程分解到一个类中,该类将参数作为类数据共享。

这是否意味着如果我有几个使用相同数据的单独类,我应该创建一个使用该数据的新类,然后继承以创建新类?

或者

这是否意味着如果我的程序中有一堆松散的例程,我应该继续将它们放入一个类中并获得封装等的好处。

4

1 回答 1

1

后者。看起来他们在谈论这样的案例:

void function_1(std::string& my_data);
void function_2(std::string& my_data);

void main() {
    std::string my_data = "SomeString";
    function_1(my_data);
    function_2(my_data);
}

可以更改为:

class MyClass {
    std::string my_data;
public:
    MyClass(const std::string& str) : my_data(str) {}
    void function_1();
    void function_2();
}

void main() {
    MyClass obj("SomeString");
    obj.function_1();
    obj.function_2();
}

Wherefunction_1function_2使用该my_data字段,而不是每次都必须传递字符串。

于 2016-03-23T12:21:37.077 回答