帮我注释一下,让我看看懂

2025-05-18 09:28:14
推荐回答(1个)
回答1:

# include
class XX//定义类XX
{
protected://定义变量为protected
int k;
public:
XX ( int n = 5 ) : k (n) { }//构造函数,当不设定n的值时,默认为5
~XX ( )//析构函数初始化
{ cout << “XX”;}//输出字符创"XX"
virtual void f ( ) ;//虚函数f
};
void XX :: f ( )//f的初始化
{ cout << k +3;}
class YY : public XX//类YY以public方式继承类XX
{
public :
~YY ( )//析构函数
{ cout << “YY”;}
void f ( )
{
cout << k – 3;
XX :: f ( );//调用XX的f函数
}
};
int main ( )
{
XX *p = new YY;//定义一个指向父类指针指向子类对象,先调用父类的初始化函数,后调用子类的初始化函数,多态
p->f ( );//调用子类YY的f函数,虚函数的用法
delete p;//先调用析构子类再析构父类
return 0;
}
结果根据刚才的函数调用顺序就可以知道了