c++之趣味new代碼大家看

大家好,今天給大家介紹一點有趣味性的c++開發知識:
現在有三個類,名字分別爲C1,C2,C3,請根據下面的已知條件推測這三個類的關係,注:以下代碼只用到了兩個類,第三個類請自由發揮:

C2 *pc2 = new C1();
C1 *pc1 = (C1 *)pc2;   //賦值後pc1的指向和pc2指向並不相同
delete pc2;   //執行後程序產生了異常
delete pc1; //可以執行成功,內存被順利釋放

這段代碼取自於《深度探索c++對象模型》 加 我自己的分析和測試,不但有趣味性,而且蘊含着對c++內部工作原理的一個比較好的理解,故拿出來和大家分享!

如果您想知道答案,歡迎關注我的課程《c++對象模型探索》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章