[問題] 關於多型的問題
我是用Blocks 10.05
程式是這樣
class A {
public:
virtual char printB1(){
return 'A';
}
char printB2(){
return 'B';
}
char doPrintB1(){
return printB1();
}
char doPrintB2(){
return printB2();
}
};
class B : public A {
public:
char printB1(){
return 'C';
}
char printB2(){
return 'D';
}
// char doPrintB1(){
// return printB1();
// }
// char doPrintB2(){
// return printB2();
// }
};
int main(int argc, char *argv[])
{
A a=A();
B b=B();
A ab=B();
cout<<a.doPrintB1();
cout<<a.doPrintB2();
cout<<b.doPrintB1();
cout<<b.doPrintB2();
cout<<ab.doPrintB1();
cout<<ab.doPrintB2();
cout<<ab.printB1();
cout<<ab.printB2();
cout<<"*****************";
A *ap=new A();
B *bp=new B();
A *abp=new B();
cout<<ap->doPrintB1();
cout<<ap->doPrintB2();
cout<<bp->doPrintB1();
cout<<bp->doPrintB2();
cout<<abp->doPrintB1();
cout<<abp->doPrintB2();
cout<<abp->printB1();
cout<<abp->printB2();
return 0;
}
印出 ABCBABAB*****************ABCBCBCB
不懂為何會不一樣??用A ab=B(); 為何沒有多形的效果出來,但是A *abp=new B() 卻有
另外當我把
B的註解拿掉後,出現
ABCDABAB*****************ABCDCBCB
不懂為何會和上面不一樣?? 我雖然是override,但是內容都相同呀~~~
P.S. B Class裡的那段 public: 再沒拿註解時是可以不用加的,但是拿掉後沒加卻出現
'char B::doPrintB1()' is private|
這個錯誤
我覺得不合理呀
因為我一開始就宣告Class B:public A
照理說應該不會有這個錯誤,因為A 裡的method我都宣告為public了
請各位高手幫我解惑一下
(因為之前是學java,我用java跑這兩個例子,出現結果都是一樣而且均有多形出現)
--
苦海無涯。施主,執著何必呢?
無涯苦海。大師,何必渡吾呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.249.193.174
※ 編輯: scale0125 來自: 60.249.193.174 (02/05 11:24)
→
02/05 11:33, , 1F
02/05 11:33, 1F
→
02/05 11:34, , 2F
02/05 11:34, 2F
→
02/05 11:35, , 3F
02/05 11:35, 3F
→
02/05 11:36, , 4F
02/05 11:36, 4F
→
02/05 11:46, , 5F
02/05 11:46, 5F
→
02/05 11:49, , 6F
02/05 11:49, 6F
→
02/05 12:09, , 7F
02/05 12:09, 7F
→
02/05 12:11, , 8F
02/05 12:11, 8F
→
02/05 12:13, , 9F
02/05 12:13, 9F
→
02/05 12:14, , 10F
02/05 12:14, 10F
→
02/05 12:14, , 11F
02/05 12:14, 11F
→
02/05 12:15, , 12F
02/05 12:15, 12F
→
02/05 12:16, , 13F
02/05 12:16, 13F
→
02/05 12:16, , 14F
02/05 12:16, 14F
→
02/05 12:16, , 15F
02/05 12:16, 15F
→
02/05 12:19, , 16F
02/05 12:19, 16F
→
02/05 12:19, , 17F
02/05 12:19, 17F
→
02/05 12:26, , 18F
02/05 12:26, 18F
→
02/05 12:26, , 19F
02/05 12:26, 19F
→
02/05 12:27, , 20F
02/05 12:27, 20F
→
02/05 12:28, , 21F
02/05 12:28, 21F
→
02/05 12:29, , 22F
02/05 12:29, 22F
→
02/05 13:29, , 23F
02/05 13:29, 23F
→
02/05 13:31, , 24F
02/05 13:31, 24F
→
02/05 13:32, , 25F
02/05 13:32, 25F
→
02/05 14:09, , 26F
02/05 14:09, 26F
→
02/05 14:10, , 27F
02/05 14:10, 27F
→
02/05 14:11, , 28F
02/05 14:11, 28F
→
02/05 14:13, , 29F
02/05 14:13, 29F
→
02/05 14:14, , 30F
02/05 14:14, 30F
→
02/05 14:14, , 31F
02/05 14:14, 31F
→
02/05 14:15, , 32F
02/05 14:15, 32F
→
02/05 14:16, , 33F
02/05 14:16, 33F
→
02/05 14:17, , 34F
02/05 14:17, 34F
→
02/05 14:17, , 35F
02/05 14:17, 35F
推
02/05 14:18, , 36F
02/05 14:18, 36F
→
02/05 14:18, , 37F
02/05 14:18, 37F
→
02/05 14:19, , 38F
02/05 14:19, 38F
→
02/05 14:20, , 39F
02/05 14:20, 39F
→
02/05 14:20, , 40F
02/05 14:20, 40F
→
02/05 14:21, , 41F
02/05 14:21, 41F
→
02/05 14:21, , 42F
02/05 14:21, 42F
→
02/05 14:22, , 43F
02/05 14:22, 43F
→
02/05 14:23, , 44F
02/05 14:23, 44F
→
02/05 14:23, , 45F
02/05 14:23, 45F
→
02/05 14:25, , 46F
02/05 14:25, 46F
→
02/05 14:29, , 47F
02/05 14:29, 47F
→
02/05 16:04, , 48F
02/05 16:04, 48F
→
02/05 16:05, , 49F
02/05 16:05, 49F
→
02/05 16:05, , 50F
02/05 16:05, 50F
→
02/05 16:12, , 51F
02/05 16:12, 51F
→
02/05 16:13, , 52F
02/05 16:13, 52F
→
02/05 16:15, , 53F
02/05 16:15, 53F
→
02/05 16:17, , 54F
02/05 16:17, 54F
→
02/05 16:17, , 55F
02/05 16:17, 55F
→
02/05 16:17, , 56F
02/05 16:17, 56F
→
02/05 16:18, , 57F
02/05 16:18, 57F
→
02/05 16:18, , 58F
02/05 16:18, 58F
→
02/05 16:19, , 59F
02/05 16:19, 59F
→
02/05 16:21, , 60F
02/05 16:21, 60F
→
02/05 16:21, , 61F
02/05 16:21, 61F
→
02/05 16:21, , 62F
02/05 16:21, 62F
→
02/05 16:22, , 63F
02/05 16:22, 63F
→
02/05 16:23, , 64F
02/05 16:23, 64F
→
02/05 16:24, , 65F
02/05 16:24, 65F
→
02/05 16:25, , 66F
02/05 16:25, 66F
→
02/05 16:25, , 67F
02/05 16:25, 67F
→
02/05 16:26, , 68F
02/05 16:26, 68F
→
02/05 16:30, , 69F
02/05 16:30, 69F
→
02/05 16:31, , 70F
02/05 16:31, 70F
→
02/05 16:34, , 71F
02/05 16:34, 71F
→
02/05 16:35, , 72F
02/05 16:35, 72F
→
02/05 16:36, , 73F
02/05 16:36, 73F
→
02/05 16:36, , 74F
02/05 16:36, 74F
→
02/05 16:37, , 75F
02/05 16:37, 75F
→
02/05 16:37, , 76F
02/05 16:37, 76F
→
02/05 16:38, , 77F
02/05 16:38, 77F
→
02/05 16:40, , 78F
02/05 16:40, 78F
→
02/05 16:41, , 79F
02/05 16:41, 79F
→
02/05 16:43, , 80F
02/05 16:43, 80F
→
02/05 16:44, , 81F
02/05 16:44, 81F
→
02/05 16:48, , 82F
02/05 16:48, 82F
→
02/05 16:49, , 83F
02/05 16:49, 83F
→
02/05 16:51, , 84F
02/05 16:51, 84F
→
02/05 16:51, , 85F
02/05 16:51, 85F
→
02/05 16:52, , 86F
02/05 16:52, 86F
→
02/05 16:53, , 87F
02/05 16:53, 87F
→
02/05 16:54, , 88F
02/05 16:54, 88F
→
02/05 16:54, , 89F
02/05 16:54, 89F
→
02/05 16:57, , 90F
02/05 16:57, 90F
推
02/05 16:57, , 91F
02/05 16:57, 91F
→
02/05 16:58, , 92F
02/05 16:58, 92F
→
02/05 16:59, , 93F
02/05 16:59, 93F
→
02/05 17:00, , 94F
02/05 17:00, 94F
→
02/05 17:01, , 95F
02/05 17:01, 95F
→
02/05 17:02, , 96F
02/05 17:02, 96F
→
02/05 17:03, , 97F
02/05 17:03, 97F
→
02/05 17:07, , 98F
02/05 17:07, 98F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章