新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > C++類指針指向子類還是基類的判斷方法

        C++類指針指向子類還是基類的判斷方法

        作者: 時間:2016-12-01 來源:網絡 收藏
        #include
        class animal
        {
        public:
        animal()
        {
        cout<<"hello kitty"<
        }
        virtual void eat()
        {
        cout<<"eat bianbian"<
        }
        };
        class plant:public animal
        {
        public:
        plant()
        {
        }
        void eat()
        {
        cout<<"haha"<
        }
        };
        void fn(animal *pan)
        {
        pan->eat ();
        }
        void main()
        {
        plant st;
        animal*pan; //一個指向animal的指針
        pan=&st; //把這個指針換成plant的類空間
        fn(pan);//把這個被替換的指針賦給fn(),它貌似指向了,然后通過這個函式指向eat()
        }
        //函數中有兩個類,而且都有eat()函數最后到底指向哪個eat()呢!
        //答:指向基類。如果想指向子類,辦法是有的!就是把基類的eat()函數虛化。加virtual前綴即可!

        // `(*∩_∩*)

        本文引用地址:http://www.104case.com/article/201612/324447.htm

        關鍵詞: C++類指針子類基

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 崇左市| 阿勒泰市| 白银市| 于田县| 贺兰县| 舞阳县| 宿松县| 潍坊市| 邵东县| 洛宁县| 旺苍县| 南江县| 宜宾县| 永修县| 兴安盟| 金昌市| 阳山县| 寻乌县| 南开区| 镇远县| 赣州市| 吉木乃县| 自贡市| 英山县| 乌鲁木齐县| 阿克陶县| 栾川县| 叶城县| 吕梁市| 青川县| 山阴县| 海南省| 玉门市| 铜陵市| 嘉鱼县| 登封市| 灵山县| 宝丰县| 周口市| 沭阳县| 芜湖县|