[C/C++]継承させたクラスを作ろう![vector]

妹「さて、じゃあ前回作ったvectorクラスを合計しちゃおうかな」

//youwaka.net 
int main()
{
	double goukei;
	vector<float> imo;
	imo.push_back(1.1);
	imo.push_back(1.2);
	imo.push_back(1.3);
	goukei = 0;
	for (int i = 0; i < imo.size(); i++)
	{
		 goukei += imo.at(i);
	}
	std::cout << "Summary:" << goukei << endl;
}

兄「これくらいだったら必要ないけど、継承させるとメインのコードが見やすくなるよ」

妹「継承……?CにはなくてC++にはあるやつだね!」

兄「そうそう」

//youwaka.net 
class vecSum :private vector<float>
{
private:
	double _aniSummary;
public:
	void Add(float floatdata)
        {
		this->push_back(floatdata);
	}
	double Summary()
	{
		_aniSummary = 0;
		for (int i = 0; i < this->size();i++) 
		{
			this->_aniSummary += this->at(i);
		}
		return _aniSummary;
	}
};
//youwaka.net 

兄「こういうクラスを作るんだよ」

妹「作るとどうなるの?」

兄「メインがこう書けるようになる」

//youwaka.net 
int main()
{
	vecSum s;	//Addでデータを追加し、Summaryで合計してくれるクラス
	s.Add(1.1);
	s.Add(1.2);
	s.Add(1.3);
	double goukei = s.Summary();
	std::cout << "Summary:" << s.Summary() << endl;
}
//youwaka.net 

妹「メインは短くなったけど……」

兄「けど?」

妹「分量的にはクラスが増えてるしコード量も増えてるよね。メリットあるの?」

兄「あるよ……」