标题:我初学C++,请老师,前辈给我讲讲这一段程序
只看楼主
萤火
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2004-11-7
 问题点数:0 回复次数:1 
我初学C++,请老师,前辈给我讲讲这一段程序
一段C++的程序,请老师给我讲一下 画线的地方是我尤其不懂的 #include<iostream> using namespace std; class XX { protected: int k; public: XX(int n=5):k(n){} ~XX(){cout<<"XX";} virtual void f()const=0; }; inline void XX::f()const{cout<<k+3;} class YY:public XX { public: ~YY{cout<<"YY";} void f()const {cout<<k-3;XX::f();} }; int main() { XX &p=* new YY; p.f(); delete &p; return 0; }
搜索更多相关主题的帖子: 前辈 老师 初学 
2005-03-12 18:24
kwaon
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-3-20
得分:0 

XX &p = * new YY; 首先生成一个YY的对象 然后将其转换为XX的引用类型p 看看下面这个修改过的程序 结果 也许能帮你理解 #include<iostream> using namespace std;

class XX { protected: int k; public: XX(int n = 5):k(n){ cout<<" &XX "<<endl;} ~XX(){cout<<" XX del"<<endl;} virtual void f() const = 0; };

inline void XX :: f() const {cout<<k+3<<" XX::f() "<<endl;}

class YY : public XX { public: YY(){cout<<" &YY "<<endl;} ~YY(){cout<<" YY del"<<endl;} void f() const {cout<<k-3<<endl;XX::f();} };

int main() { XX &p = * new YY;//首先生成一个YY实例,然后转换为XX的引用类型p

p.f(); delete &p; return 0; }


2005-03-21 16:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-13201-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.152291 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved