摘要: 假设要编写一个小区养狗管理程序,该程序需要一个“主人”类,还需要一个“狗”类。狗是有主人的,主人也有狗。假定狗只有一个主人,但一个主人可以有最多10条狗。该如何处理“主人”类和“狗”类的关系呢?下面是一种直观的写法: 这种写法是无法通过编译的。因为尽管提前对CDog类进行了声明,但编译到第4行时,编 阅读全文
posted @ 2018-01-10 19:30 ff_d 阅读(758) 评论(0) 推荐(0)
摘要: 类的成员函数之间可以互相调用。在成员函数(静态成员函数、构造函数和析构函数除外)中调用其他虚成员函数的语句是多态的。例如: 输出: 第20行调用func1成员函数。进入func1成员函数,执行到第8行,调用func2函数。看起来调用的应该是CBase类的func2成员函数,但输出结果证明实际上调用的 阅读全文
posted @ 2018-01-10 19:00 ff_d 阅读(790) 评论(0) 推荐(0)
摘要: “多态”的关键在于通过基类指针或引用调用一个虚函数时,编译时不确定到底调用的是基类还是派生类的函数,运行时才确定。例子: 输出结果: 如果将程序中的 virtual 关键字去掉: 输出结果: 对比发现,有了虚函数以后,对象占用的存储空间比没有虚函数时多了4个字节。实际上,任何有虚函数的类及其派生类的 阅读全文
posted @ 2018-01-10 18:39 ff_d 阅读(237) 评论(0) 推荐(0)
摘要: 5.jpg 55.jpg 555.jpg 生成的图片 阅读全文
posted @ 2018-01-10 17:01 ff_d 阅读(474) 评论(0) 推荐(0)