2

私が最近よく考えている一般的なガイドライン (Scott Meyers、Klaus Iglberger など) があります。これは、基本的にメンバー関数よりも非メンバー (無料) 関数を優先するというものです。私は実際にメンバー関数のほとんどを実際に外部に引き出すことができることに気づいていますが、それが実際にいつすべきかを理解するのに苦労しています

これは簡単な例で、文字列のベクトル (プライベート データ メンバー) を何らかの形式でコンソールに出力する関数です。

void list::print() const {
    std::cout << "Printing list -> " << list_.size() << " entries.\n";
    std::cout << "--- START OF LIST ---\n";
    for (const auto &s : list_) {
        std::cout << s.size() << " : " << s << '\n';
    }
    std::cout << "--- END OF LIST ---\n";
}

このような単純なケースで決定するのは難しいと思います。プログラムが大きくなるにつれて、無料の関数が複数のオブジェクトに適応できる一方で、短期的にはメンバー関数がもう少し洗練されているように思えます。誰かが決定するのに役立つある種の経験則を持っていますか? 私はこれを考えすぎていますか?ありがとう。

4

0 に答える 0