個人的には、2 番目の形式を使用します。私がこれを言うのは、他のチームの人々によって書かれたフレームワークを使用していて、彼らがこのフォームを使用しているからです。
これは、よりクリーンで、使用するスペースが少なく、著者ではない人が読みやすいためだと思います。プロジェクトに関する最小限の知識しかない人でも読めるようにしながら、最も簡潔なコードが最善であることを心に留めておくようにしています。
また、後者の例では、ヘッダー ファイル、メソッド、クラス、またはデータ ファイルなどの読みやすさに関して、問題は発生していません。
私はこの問題の専門家とはかけ離れていますが、それが私の好みです。私にはもっと理にかなっています。
class AlgoCompSelector : public TSelector {
public :
AlgoCompSelector( TTree *tree = 0 );
virtual ~AlgoCompSelector(){ /* */ };
virtual void Init(TTree *tree);
virtual void SlaveBegin(TTree *tree);
virtual Bool_t Process(Long64_t entry);
virtual void Terminate();
virtual Int_t Version() const { return 1; }
void setAlgo( Int_t idx, const Char_t *name, TTree* part2, TTree* part3 );
void setPTthres( Float_t val );
void setEthres( Float_t val );
private:
std::string mAlgoName[2]; // use this for the axis labels and/or legend labels.
TTree *mPart1;
TTree *mPart2[2], *mPart3[2]; // pointers to TTrees of the various parts
TBranch *mPhotonBranch[2]; // Used branches
TClonesArray *mPhotonArray[2]; // To point to the array in the tree
例えば