[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
妹「メインは短くなったけど……」
兄「けど?」
妹「分量的にはクラスが増えてるしコード量も増えてるよね。メリットあるの?」
兄「あるよ……」
ディスカッション
コメント一覧
まだ、コメントがありません