はじめに
「牛乳を買ってきて」「卵があったら6つ買ってきて」と頼んだら牛乳を6つ買ってくるプログラマの夫を実装しました。
実際のコード
#include <iostream>
#include <string>
class Programmer {
std::string kakuninshitamono;
std::string kattamono;
int kattakazu;
public:
void kattekite(std::string nanka) {
kakuninshitamono = "";
kattamono = nanka;
kattakazu = 1;
}
void kattekite(std::string aruka, int nanko)
{
kakuninshitamono = aruka;
kattakazu = nanko;
}
void kattekite(std::string aruka, std::string nanka, int nanko = 1)
{
kakuninshitamono = aruka;
kattamono = nanka;
kattakazu = nanko;
}
void kattekita()
{
std::cout << "夫「";
if (kakuninshitamono != "") {
std::cout << kakuninshitamono << "があったから";
}
std::cout << kattamono << "を" << kattakazu << "つ買ってきたよ」" << std::endl;
}
};
int main()
{
Programmer otto;
std::cout << "妻「牛乳を買ってきて」" << std::endl;
otto.kattekite("牛乳");
std::cout << "妻「卵があったら6つ買ってきて」" << std::endl;
otto.kattekite("卵", 6);
otto.kattekita();
}
「~があったら」の条件は必ず真となる想定です。
実行結果
妻「牛乳を買ってきて」
妻「卵があったら6つ買ってきて」
夫「卵があったから牛乳を6つ買ってきたよ」
期待通り牛乳を6つ買ってきてくれました。
確認するものと買ってくるものを同時にも指定可能です。
int main()
{
Programmer otto;
std::cout << "妻「サッポロ一番塩らーめんがあったらマルちゃん塩ラーメンを5つ買ってきて」" << std::endl;
otto.kattekite("サッポロ一番塩らーめん", "マルちゃん塩ラーメン", 5);
otto.kattekita();
}
実行結果
妻「サッポロ一番塩らーめんがあったらマルちゃん塩ラーメンを5つ買ってきて」
夫「サッポロ一番塩らーめんがあったからマルちゃん塩ラーメンを5つ買ってきたよ」
この夫の場合5食入り1パックを5パック買ってくるような気はしますね。
おわりに
おわりです。