热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

对象切片与虚函数机制

C语言:Codee#2574401*02对象切片03此处为传值注意与传地址相比较04*05#include06#include07usingna
C++语言: Codee#25744
01 /*
02    对象切片
03    此处为传值 注意与传地址相比较
04    */
05 #include
06 #include
07 using namespace std;
08
09 class Pet
10 {
11     string pname;
12 public:
13     Pet(const string& name)
14         : pname(name)
15     {}
16     virtual string name() const
17     {
18         return pname;
19     }
20     virtual string description() const
21     {
22         return "This is " + pname;
23     }
24 };
25
26 class Dog: public Pet
27 {
28     string favoriteActivity;
29 public:
30     Dog(const string& name, const string& activity)
31         : Pet(name), favoriteActivity(activity)
32     {}
33     string description() const
34     {
35         return Pet::name() + " likes to " +
36                favoriteActivity;
37     }
38 };
39
40 void describe(Pet p)
41 {
42     cout << p.description() << endl;
43 }
44
45 int main()
46 {
47     Pet p("Alfred");
48     Dog d("Fluffy", "sleep");
49     describe(p);
50     describe(d);
51
52     return 0;
53 }
54 /*
55 This is Alfred
56 This is Fluffy
57
58 Process returned 0 (0x0)   execution time : 0.070 s
59 Press any key to continue.
60
61 */

 

C&#43;&#43;语言: Codee#25745
01 /*
02    地址传递
03    启用虚函数机制
04    */
05 #include
06 #include
07 using namespace std;
08
09 class Pet
10 {
11     string pname;
12 public:
13     Pet(const string& name)
14         : pname(name)
15     {}
16     virtual string name() const
17     {
18         return pname;
19     }
20     virtual string description() const
21     {
22         return "This is " &#43; pname;
23     }
24 };
25
26 class Dog: public Pet
27 {
28     string favoriteActivity;
29 public:
30     Dog(const string& name, const string& activity)
31         : Pet(name), favoriteActivity(activity)
32     {}
33     string description() const
34     {
35         return Pet::name() &#43; " likes to " &#43;
36                favoriteActivity;
37     }
38 };
39
40 void describe(Pet* p)
41 {
42     cout << p->description() << endl;
43 }
44
45 int main()
46 {
47     Pet* p &#61; new Pet("Alfred");
48     Dog* d &#61; new Dog("Fluffy", "sleep");
49     describe(p);
50     describe(d);
51
52     return 0;
53 }
54 /*
55 This is Alfred
56 Fluffy likes to sleep
57
58 Process returned 0 (0x0)   execution time : 0.059 s
59 Press any key to continue.
60
61
62
63 */

转:https://www.cnblogs.com/invisible/archive/2012/03/08/2384841.html



推荐阅读
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 在Kohana 3框架中,实现最优的即时消息显示方法是许多开发者关注的问题。本文将探讨如何高效、优雅地展示flash消息,包括最佳实践和技术细节,以提升用户体验和代码可维护性。 ... [详细]
  • 单链表的高效遍历及性能优化策略
    本文探讨了单链表的高效遍历方法及其性能优化策略。在单链表的数据结构中,插入操作的时间复杂度为O(n),而遍历操作的时间复杂度为O(n^2)。通过在 `LinkList.h` 和 `main.cpp` 文件中对单链表进行封装,我们实现了创建和销毁功能的优化,提高了单链表的使用效率。此外,文章还介绍了几种常见的优化技术,如缓存节点指针和批量处理,以进一步提升遍历性能。 ... [详细]
  • 具备括号和分数功能的高级四则运算计算器
    本研究基于C语言开发了一款支持括号和分数运算的高级四则运算计算器。该计算器通过模拟手算过程,对每个运算符进行优先级标记,并按优先级从高到低依次执行计算。其中,加减运算的优先级最低,为0。此外,该计算器还支持复杂的分数运算,能够处理包含括号的表达式,提高了计算的准确性和灵活性。 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • 本文探讨了 Java 中 Pair 类的历史与现状。虽然 Java 标准库中没有内置的 Pair 类,但社区和第三方库提供了多种实现方式,如 Apache Commons 的 Pair 类和 JavaFX 的 javafx.util.Pair 类。这些实现为需要处理成对数据的开发者提供了便利。此外,文章还讨论了为何标准库未包含 Pair 类的原因,以及在现代 Java 开发中使用 Pair 类的最佳实践。 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
  • 寒假作业解析:第三周 2月12日 第7题
    尽快完成之前的练习任务!每日一练2.1 Problem A Laurenty and Shop 的题目要求是选择两条不同的路线以最小化总的等待时间。简要分析:通过对比不同路线的等待时间,可以找到最优解。此问题可以通过动态规划或贪心算法来解决,具体取决于路线的复杂性和约束条件。 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • C# .NET 4.1 版本大型信息化系统集成平台中的主从表事务处理标准示例
    在C# .NET 4.1版本的大型信息化系统集成平台中,本文详细介绍了主从表事务处理的标准示例。通过确保所有操作要么全部成功,要么全部失败,实现主表和关联子表的同步插入。主表插入时会返回当前生成的主键,该主键随后用于子表插入时的关联。以下是一个示例代码片段,展示了如何在一个数据库事务中同时添加角色和相关用户。 ... [详细]
  • 本文探讨了如何有效地构建和优化微信公众平台账号,涵盖了用户信息管理、内容创作与发布、互动策略及数据分析等方面。通过合理设置用户信息字段,如用户名、昵称、密码、真实姓名和性别等,确保账号的安全性和用户体验。同时,文章还介绍了如何利用微信公众平台的各项功能,提升用户参与度和品牌影响力。 ... [详细]
  • 蓝桥杯算法实战:节点选取策略优化分析
    本文针对蓝桥杯算法竞赛中的节点选取策略进行了深入分析与优化。通过对比不同节点选择方法的效果,提出了基于贪心算法和动态规划的综合优化方案,旨在提高算法效率和准确性。实验结果表明,该优化策略在处理大规模数据集时表现出色,显著提升了算法性能。 ... [详细]
  • 本文对常见的字符串哈希函数进行了全面分析,涵盖了BKDRHash、APHash、DJBHash、JSHash、RSHash、SDBMHash、PJWHash和ELFHash等多种算法。这些哈希函数在不同的应用场景中表现出各异的性能特点,通过对比其算法原理、计算效率和碰撞概率,为实际应用提供了有价值的参考。 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • PHP服务接口的专业测试方法与实践 ... [详细]
author-avatar
see海是海天是天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有