untitled

Similar documents
untitled

c_cpp

untitled

untitled

Chapter12 Derived Classes

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

新版 明解C++入門編

FY.DOC

untitled

extend

第3章.doc

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

C/C++程序设计 - 字符串与格式化输入/输出

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

CC213

Microsoft Word - chap10.doc

提问袁小兵:

第七讲 继承与多态

untitled

個 人 的 手, 拉 著 瞎 子 的 手 把 他 帶 往 村 外 的 時 候, 對 於 瞎 子 來 講, 那 個 人 的 手 和 耶 穌 的 手 有 沒 有 區 別? 沒 有! 為 什 麼 沒 有 區 別? 因 為 對 於 一 個 瞎 子 來 說, 手 和 耳 朵 就 是 他 接 觸 世 界, 瞭

C

Microsoft Word - 第3章.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

ebook39-5

02

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

Microsoft PowerPoint - L17_Inheritance_v4.pptx

新・解きながら学ぶJava

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

Strings

全国计算机技术与软件专业技术资格(水平)考试

C/C++ - 字符串与字符串函数

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

IO

馬偕醫學院 學生事務工作簡報

新版 明解C言語入門編

C/C++ - 函数

Chapter 9: Objects and Classes

untitled

untitled

内部明电

C/C++ - 文件IO

Microsoft Word - 鄂卫办函[2009]64号.doc

全宋词1

& ((& ) ((

C C

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

_汪_文前新ok[3.1].doc

新・明解C言語入門編『索引』

untitled

Microsoft Word - 01.DOC

電機工程系認可證照清單 /7/1

上 海 农 商 银 行 理 财 产 品 风 险 揭 示 书 理 财 资 金, 则 客 户 面 临 产 品 期 限 延 期 调 整 等 风 险 8. 信 息 传 递 风 险 : 上 海 农 商 银 行 将 按 照 本 说 明 书 有 关 信 息 公 告 的 约 定, 进 行 产 品 信 息 披 露 客

(譯本)

Strings

nooog

8

1.5招募说明书(草案)

Microsoft Word 電腦軟體設計.doc

《大话设计模式》第一章

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

第一章

C++ 程式設計

Microsoft Word - 大事记.doc

( ) ( ( ( ( , ) 13 ( ) ( (2012 ) ( ( 16 ( ( ( ( 292 ( ( (1

1 2 / 3 1 A (2-1) (2-2) A4 6 A4 7 A4 8 A4 9 A ( () 4 A4, A4 7 ) 1 (2-1) (2-2) ()

4 / ( / / 5 / / ( / 6 ( / / / 3 ( 4 ( ( 2

新・解きながら学ぶC言語

範本檔

糖尿病食譜


Microsoft Word 養生與保健_中山大學_講義


萬里社區老人健康照護手冊

Microsoft Word - 強制汽車責任保險承保及理賠作業處理辦法 doc

Microsoft Word - 06.Understanding of Pregnancy and Birth.doc

(➂)11. 炎 炎 夏 日, 即 使 下 起 滂 沱 大 雨, 都 消 除 不 了 令 人 心 煩 的 暑 氣 這 句 話 主 要 想 表 達 什 麼? ➀ 夏 日 裡 經 常 下 著 滂 沱 大 雨, 令 人 心 煩 ➁ 下 著 滂 沱 大 雨 的 日 子, 可 以 消 除 暑 氣 ➂ 夏 日

附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 23 工 商 银 行 安 徽 省 铜 陵 百 大 支 行 铜 陵 市 长 江 东 路 50 号 鲁 桂 珍 工 商 银 行 安 徽

2. 二 年 級 吳 毓 秀 老 師 : 感 謝 午 餐 公 司 平 時 均 能 準 時 送 餐, 但 希 望 能 不 要 使 用 加 工 品, 且 學 生 反 映 希 望 能 多 加 蛋 品 的 食 物 3. 三 年 級 柯 阿 青 老 師 : 雞 肉 有 血 水 味, 請 午 餐 公 司 能 調

高雄市立五福國民中學九十四學年度第一學期第三次段考二年級本國語文學習領域試題卷

人 物 春 秋 杨 永 泰 将 其 削 藩 策 略 概 括 为 : 以 经 济 方 法 瓦 解 冯 玉 祥 的 第 二 集 团 军, 以 政 治 方 法 解 决 阎 锡 山 的 第 3 集 团 军, 以 军 事 方 法 解 决 李 宗 仁 的 第 四 集 团 军, 以 外 交 方 法 对 付 张 学

台北老爺校外實地參訪結案報告



,,,,,,, (,, ),,,,,,,,,,,,,,, ,,, 4 11,, ( ),,,, ( ), :, ( ),,, 1995, 66 ; ( ),, 1996, , 3-4,,


2002 4,,, 1941,,,,,,,,,,,,,,,,,, : ;:, 1991,

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

<4D F736F F D20C6C0BCB6B1A8B8E6B7E2C3E6A3A8BAFEB1B1B9A9CFFAB8FAD7D9A3A9>

untitled

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

C++ 程序设计 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

Microsoft PowerPoint - plan08.ppt

C/C++语言 - C/C++数据

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File



<4D F736F F D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

JavaIO.PDF

Transcription:

1

7 7.1 7.2 7.3 7.4 7.5 2

7.1 VFT virtual 7.1 3

1 1. 2. public protected public 3. VFT 4. this const volatile 4

2 5. ( ) ( ) 7.1 6. no-static virtual 7.2 7. inline 7.3 5

3 8. this this 9. ( ) ( ) delete *f 6

4 10. ( ) virtual friend 11. 12. union union 7.2 7

7.1 POINT CIRCLE show #include <iostream.h> class POINT{ int x, y; public: int getx( ) { return x; } int gety( ) { return y; } virtual void show( ) { cout<<"show a point\n"; } POINT(int x, int y) { POINT::x=x; POINT::y=y; } class CIRCLE: public POINT{ int r; public: int getr( ) { return r; } void show( ) { cout<<"show a circle\n"; } CIRCLE(int x, int y, int r):point(x, y) { CIRCLE::r=r; } Return 8

void main(void) { CIRCLE c(3, 7, 8); POINT *p=&c; // p Circle cout<<"the circle with radius "<<c.getr( ); cout<<" is at ("<<p->getx( )<<", "<<p->gety( )<<")\n"; p->show( ); } The circle with radius 8 is at (3, 7) Show a circle virtual //p->show( ) Return 2 9

7.2 #include <iostream.h> struct A{ virtual void f1( ){ cout<<"a::f1\n"; } virtual void f2( ){ cout<<"a::f2\n"; } virtual void f3( ){ cout<<"a::f3\n"; } virtual void f4( ){ cout<<"a::f4\n"; } class B: A{ virtual void f1( ) //virtual { cout<<"b::f1\n"; } void f2( ) //f2 { cout<<"b::f2\n"; } class C: B{ void f4( ) //f4 { cout<<"c::f4\n"; } Return 2 void main(void) { C c; A *p=(a *)&c; p->f1( ); p->f2( ); p->f3( ); p->f4( ); p->a::f2( ); } B::f1 B::f2 A::f3 C::f4 A::f2 // B::f1( ) // B::f2( ) // A::f3( ) // C::f4( ) // A::f2( ) ( ) c.f1( ); //? c.f2( ); //? 10

7.3 #include <iostream.h> struct A{ virtual void f1( ) { cout<<"a0"; } virtual void f1(char c) { cout<<"a1"; } void f1(int x) { cout<<"a2"; } class B: A{ void f1( ) { cout<<"b0"; } void f1(int x) { cout<<"b2"; } class C: B{ void f1( ) { cout<<"c0"; } void f1(char c) { cout<<"c1"; } public: void f1(long x) { cout<<"c3"; } } // // // void main(void) { C c; A *p=(a *)&c; p->f1('x'); p->f1( ); c.f1(23l); p->f1(3) // // // C::f1(char) // C::f1( ) // C::f1(long) // A::f1(int) C1C0C3A2 1. c.f1(3); // 2. A::f1(int) p->f1(3) // 11

1. 2. A f( ) B f( ) B::f( ) A::f( ) f( ) Return 2 12

7.2 7.4 delete 13

7.4,,, #include <stdio.h> #include <string.h> class STRING{ char *str; public: STRING(char *s); virtual ~STRING( ) { if (str) { delete str; str=0; } } STRING::STRING(char *s) { str=new char[strlen(s)+1]; strcpy(str, s); } 14

class CLERK: public STRING{ STRING clkid; int age; public: CLERK(char *n, char *i, int a); ~CLERK( ){ } // clkid.~string( ) STRING::~STRING( ) CLERK::CLERK(char *n, char *i, int a):string(n), clkid(i) { age=a; } 15

const int max=10; void main(void) { STRING *s[max]; int a, k, m; char n[12], i[12], t[256]; printf("please input name, number and age:\n"); for(k=0; k<max; k++) { gets(t); m=sscanf(t, %8s %8s %d,n,i,&a)!=3; //m s[k]=m?new STRING(n):new CLERK(n,i,a); } for(k=0; k<max; k++) delete s[k]; // s[k] STRING s[k]->~string( ) } // s[k] CLERK s[k]->~clerk( ) Return 7.2 STRING 16

new delete & STRING &z=*new CLERK("zang","982021",23); delete &z; // z z delete &z CLERK zang 982021 23 str CLERK "zang" "982021" 23. delete &z z.~clerk( ) free(&z) delete &z 17

7.3 ( Java interface) virtual =0; =0 this. ( Java interface) 7.5 18

7.5 #include <iostream.h> struct A{ //A virtual void f1( )=0; virtual void f2( )=0; void A::f1( ){ cout<<"a1"; } } void A::f2( ){ cout<<"a2"; } class B: public A{ void f2( ) { this->a::f2( ); cout<<"b2"; } class C: public B{ void f1( ) { cout<<"c1"; } void main(void) { C c; A *p=(a *)&c; p->f1( ); p->f2( ); // f2 f1 B // f1 f2 C // C::f1( ) // B::f2( ) C1A2B2 19

1 new, 7.6 20

7.6 #include <iostream.h> struct A{ // A virtual void f1( )=0; void f2( ) { struct B: A{ // A void f1( ){ A f( ); int g(a x); A &h(a &y); // B void main(void) { } A a; A *p; p->f1( ); p->f2( ); // A // A // a // B // A::f1( ) // A::f2( ) 21

2 malloc malloc < 7.7 > 22

7.4 A f B f B f B C f C A C 23

7.8 #include <iostream.h> class C; struct A { virtual void f1(c &c)=0; virtual void f2(c &c); class B: A{ public: void f1(c &c); //f1 class C { char c; // A::f1(C &c) friend void A::f1(C &c); friend void A::f2(C &c); public: C(char c) { C::c=c; } void A::f1(C &c) { cout<<"b outputs "<<c.c<<"\n"; } void A::f2(C &c) { cout<<"a outputs "<<c.c<<"\n"; } void B::f1(C &c) { cout<<c.c; } void main( void) { B b; C c('c'); } // B::f1 C c.c A *p=(a *) new B; p->f1(c); // B::f1( ) p->f2(c); // A::f2( ) 24

7.5 (VFT ) VFT VFT 7.10 7.11 25

7.10 #include <iostream.h> class A{ static int b; int a; B B virtual int f( ); virtual int g( ); virtual int h( ); B::f A::f int a A::g A::g class B: A{ A A::h A::h static int y; B::u int x; int x B::v B int f( ); virtual int u( ); B virtual int v( ); void main(void) sizeof(a) sizeof(a) sizeof(void *) { sizeof(b) sizeof(a) sizeof(x) cout<<"size of int="<<sizeof(int)<<"\n"; cout<<"size of pointer="<<sizeof(void *)<<"\n"; cout<<"size of A="<<sizeof(A)<<"\n"; cout<<"size of B="<<sizeof(B)<<"\n"; } return 26

7.11 #include <iostream.h> class A{ static int b; int a; class B: A{ static int y; int x; public: virtual void u( ) { virtual void v( ) { void main(void) { int a int x cout<<"size of int="<<sizeof(int)<<"\n"; cout<<"size of pointer="<<sizeof(void *)<<"\n"; cout<<"size of A="<<sizeof(A)<<"\n"; cout<<"size of B="<<sizeof(B)<<"\n"; } sizeof(a) sizeof(a) sizeof(b) sizeof(a) sizeof(void *) sizeof(x) A B B::u B::v 27