C_and_CPP 板


LINE

请问关於多型的用法 class Animal { void hello() { printf("I am animal"); } } class Dog : Animal { void hello() { printf("I am dog"); } } class Cat : Animal { void hello() { printf("I am cat"); } } 想请问若用 Animal a = new Dog; a.hello(); 会出现I am dog 与 Dog a = new Dog; a.hello() 这样用法上有什麽区别呢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.233.135.153
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1521264760.A.593.html
1F:→ xam: 等你真的试过再来问... 03/17 14:15
2F:推 bluesoul: 第二种用法意义不大 03/17 14:16
3F:→ james732: void foo(Amimal *a) { a->hello(); } 03/17 14:32
4F:→ james732: 这种情况foo不必知道是什麽动物,只要知道它会说hello 03/17 14:32
5F:→ james732: 可以用"它能做什麽"取代"它是什麽" 03/17 14:33
6F:→ james732: 不同类型但行为相同的程式码就可以重覆使用 03/17 14:33
7F:→ loveflames: 你这个根本不是多型,没宣告virtual 03/17 15:21
8F:推 dzwei: 第1.如同楼上说的,没有虚拟化函数,不算多型 03/17 15:29
9F:→ dzwei: 第二,要多型的话,建立物件的方式要采用Pointer 03/17 15:30
10F:→ dzwei: e.g. Dog* a = new Dog 03/17 15:31
11F:→ loveflames: reference也可以,但没有指标通用 03/17 16:31
12F:→ loveflames: 另外,虽然virtual方法是一般意义下的多型,但C++可以 03/17 16:33
13F:→ loveflames: 用CRTP来搞静态多型,这时就可以是non-virtual 03/17 16:33
14F:→ dzwei: 我记得CRTP就一定要用指标而不能Ref了。 03/17 17:03
15F:→ dzwei: 这边建议一种CRTP的写法 : 先做一个pure vurtal func在 03/17 17:04
16F:→ dzwei: animal的Class内。然後再做一个animal_CRTP,这个Class 03/17 17:05
17F:→ dzwei: 负责实作静态转型为Derived。最後Cat、Dog只要继承 03/17 17:05
18F:→ dzwei: animal_CRTP<Cat>和animal_CRTP<Dog>即可 03/17 17:06
19F:推 hadoop: 前提是你的compiler能过吗? 03/19 13:26
20F:→ phishingphi: 额为甚麽一个对virtual函式都不熟的问题会出现CRTP.. 03/20 01:15
21F:推 dzwei: 目前在win10上 03/20 21:11
22F:→ dzwei: 用gcc7 clang6 clang6-cl 03/20 21:11
23F:→ dzwei: 都可以通过编译且执行结果正确 03/20 21:11
24F:→ dzwei: 目前有问题的是重载operator 03/20 21:11
25F:推 s4300026: animal的func写成=0这样想就比较清楚了 03/21 12:23







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP