[[ssacontents]]

C++において、オブジェクトのスライシングとは、


 class base {
    int a;
    virtual const char* name() { return "base"; }
 };

 class sub : public base {
    int b;
    virtual const char* name() { return "sub"; }
 };

 void hoge(base& b) {
     base tmp = b; 
     printf("%s\n", tmp.name());
 }
 
 sub s;
 hoge(s);
 ...

hoge()では、"base"が表示される。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS