【发布时间】:2014-05-11 21:22:07
【问题描述】:
我有一个关于更好的编程实践的问题。说,我有以下课程:
class MyClass {
public:
vector<double> data() { return data_; }
void set_data(int index, double value) { data_[index] = value; }
private:
vector<double> data_;
};
我有私有向量 data_ 和访问器/修改器函数。在公共data_ 的情况下使用operator= 非常方便。但是,我需要将 data_ 设为私有并通过成员函数访问/改变它。但我不确定构造 mutator 函数的最佳方法。到目前为止,我最好的方法是示例中的方法。有什么建议吗?
【问题讨论】:
-
我不明白为什么示例中的那个不好...一个小的改进是使结构中的 mutator 只是一个原型,并在程序中具有较低的功能.
-
更多上下文会有所帮助。仅考虑到这一点,最好的方法是说
using MyClass = std::vector<double>; -
您的课程,正如所写的那样,与独立的
std::vector<double>一样好,并且没有告诉我们您想要实现的目标。这使得很难就“更好的方法”给出建议。 -
不要仅仅为了上课而上课。每个班级都应该有一个单一的、不同的目的和责任。如果您的班级有太多职责,请将其拆分。如果没有,请将其删除。
-
就目前而言,您的
data()方法应该是const,并且您无法设置向量的大小。你想如何创建这个类?
标签: c++ class private mutators