ネタ元 → 牛乳ラーメンを作ってみた
genericsでは逆立ちしてもできんこと:
using namespace System;
// template引数をベースクラスにしてまう
template<typename Base>
ref class 牛乳ラーメン : Base {
};
// 継承関係のない三種のラーメン
ref class さっぽろ一番みそラーメン {
public:
String^ おいしさのヒミツ() { return L"七味とうがらし"; }
};
ref class さっぽろ一番塩ラーメン {
public:
String^ おいしさのヒミツ() { return L"きり胡麻"; }
};
ref class 出前一丁 {
public:
String^ おいしさのヒミツ() { return L"ごまラー油"; }
};
// おいしさのヒミツ♪
int main() {
牛乳ラーメン<さっぽろ一番みそラーメン> ramen1;
Console::WriteLine(ramen1.おいしさのヒミツ());
牛乳ラーメン<さっぽろ一番塩ラーメン> ramen2;
Console::WriteLine(ramen2.おいしさのヒミツ());
牛乳ラーメン<出前一丁> ramen3;
Console::WriteLine(ramen3.おいしさのヒミツ());
}