LoginSignup
2
1

「牛乳を買ってきて」「卵があったら6つ買ってきて」と頼んだら牛乳を6つ買ってくるプログラマの夫を実装した

Posted at

はじめに

「牛乳を買ってきて」「卵があったら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パック買ってくるような気はしますね。

おわりに

おわりです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1