extend

Similar documents
Strings

Strings

c_cpp

untitled

untitled

untitled

Microsoft Word - chap10.doc

新・解きながら学ぶJava

untitled

Chapter12 Derived Classes

Microsoft PowerPoint - L17_Inheritance_v4.pptx

第七讲 继承与多态

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

Microsoft Word - 物件導向編程精要.doc

untitled

(procedure-oriented)?? 2

CC213

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

FY.DOC

C/C++ - 函数

Microsoft Word 軟體設計第二部份範例試題_C++_ _1_.doc

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

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

新版 明解C言語入門編

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

untitled

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

Microsoft Word cppFinalSolution.doc

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

C/C++ - 文件IO

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

C++ 程式設計

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

CC213

C/C++语言 - 运算符、表达式和语句

untitled

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

C 1

ebook39-5

Microsoft Word - 第3章.doc

chp6.ppt

Chapter 9: Objects and Classes

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

Microsoft Word - 01.DOC

untitled

《大话设计模式》第一章

untitled

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

untitled

新版 明解C++入門編

第3章.doc

提问袁小兵:








1

学习MSP430单片机推荐参考书

( 总 第 1073 期 ) 浙 江 省 人 民 政 府 主 办 2015 年 3 月 17 日 出 版 省 政 府 令 省 政 府 文 件 目 录 浙 江 省 大 型 群 众 性 活 动 安 全 管 理 办 法 ( 浙 江 省 人 民 政 府 令 第 333 号 ) (3) 浙 江 省 人 民 政

nooog

第一章.FIT)

大 綱 最 有 利 標 目 的 及 類 型 最 有 利 標 之 辦 理 方 式 準 用 最 有 利 標 取 最 有 利 標 精 神 最 有 利 標 之 類 型 及 其 相 關 規 定 適 用 最 有 利 標 準 用 最 有 利 標 及 取 最 有 利 標 精 神 作 業 程 序 及 實 務 分 析

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

C C

運算子多載 Operator Overloading

mvc

<5B BECBB0EDB8AEC1F25D312D34B0AD5FC3E2BCAEBCF6BEF7C0DAB7E F31702E504446>

C

1.5招募说明书(草案)


Microsoft Word - ch04三校.doc

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

untitled

用户大会 论文集2.2.doc

(Microsoft Word - \277\357\262\325\252\272\246\322\266q.doc)

山东建筑大学学分制管理规定(试行)

C/C++ - 结构体、共用体、枚举体

5-1淡江大學學則950602

汇集全球21位医生的经验和智慧,总结出最实用的专业建议,这些都是最值得你牢记的健康提醒

1 行 业 发 展 不 平 衡 我 国 房 地 产 中 介 服 务 业 起 步 较 晚, 专 业 分 工 程 度 和 国 外 发 达 国 家 相 比 还 有 很 大 差 距 房 地 产 中 介 服 务 行 业 的 发 展 水 平 与 房 地 产 开 发 行 业 的 市 场 化 水 平 密 切 相 关

新婚夫妇必读(九).doc

《佛子行三十七颂》讲记1

(给多有拉姆)佛子行三十七颂1——7

至 尊 法 王 蒋 阳 龙 朵 加 参 尊 者 上 师 瑜 伽 皈 依 境

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

02

软件工程文档编制

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

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

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

IO

RUN_PC連載_10_.doc

untitled

Microsoft Word - 第7章 类与对象.docx

CHAPTER VC#

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

Transcription:

(object oriented) Encapsulation Inheritance Polymorphism Dynamic Binding (base class) (derived class) 1

class Base { int I; void X(); void Y(); class Derived: public Base { private: int j; void z(); Derived j z() I X() Y() 2

class OLD { virtual void Action(); void OLD::Action(){ printf( This is an old class ); class New: public OLD { void Action(); void NEW::Action(){ printf( This is NEW class ); Action() New Action class Base{ virtual void Initialize(); void Base:: Initialize(){ /* class Derived: public Base{ void Initialize(); void Derived:: Initialize(){ Base::Initialize(); /* Base Initialize */ Derived Initialize */ 3

protected public, protected, private private protected public, protected, private public protected private 4

public class : public { /* */ public public protected public protected private class : private { /* */ private private public protected private private 5

public private public public private protected protected private private - class upcounter{ protected: int value; void set_val(int v) { value=v; void up() { value++; int get_val() { return value; 1 class counter: public upcounter{ void down() { value--; // upcounter a; counter b; a.set_val(5); b.set_val(8); for (int i=0;i<5;i++) { a.up(); b.up(); // for (i=0;i<10;i++) b.down(); cout << Value of counter a= << a.get_val() << \n ; // 10 cout << Value of counter b= ; // 3 6

- #include <math.h> class circle{ /* */ protected: double r; void set_radius(double a) { r=a; double area(){ return 4*atan(1)*r*r; class cylinder: public circle{ private: double h; void set_height(double a) { h=a; double area(){ double pi=4*atan(1); return pi*r*r*2+2*pi*r*h; circle c; cylinder b; c.set_radius(2); b.set_radius(2); b.set_height(2); cout << "Area of c ="<< c.area() <<"\n"; cout << "Surface of b="<< b.area() <<"\n"; Area of c=12.566371 Surface of b=50.265482 #include <stdlib.h> #include <conio.h> #include <time.h> - class Rockbox{ protected: int number; Rockbox(){ srand((unsigned)time(null)); number=1; void rock(){ number=rand()%9+1; int see(){ return number; class UnjustRock:public Rockbox{ void unjust(int); void UnjustRock::unjust(int no){ if ((no>=0)&&(no<=9)) number=n UnjustRock box1; cout << "; box1.rock(); cout<<box1.see()<<endl; cout<< "; box1.unjust(8); cout<<box1.see()<<endl; 7

#include <process.h> const int MAX=100; class Stack{ protected: int st[max]; int top; Stack(){ top=0; void push(int var){ st[++top]=var; int pop(){ return st[top--]; class Stack2:public Stack{ void push(int var); int pop(); - void Stack2::push( int var){ if (top<max) Stack::push(var); else { cout<<"\nerror:stack is full."; exit(1); int Stack2::pop(){ if (top>0) return Stack::pop(); else { cout<<"\n Error: Stack is empty."; exit(1); return -1; Stack2 s1; s1.push(110); s1.push(220); cout <<endl<<s1.pop(); // 220 cout <<endl<<s1.pop(); // 110 cout <<endl<<s1.pop(); ( ): ( ){ /* */ : Derived(int v): Base(v) 8

class Base{ Base(){ cout << In Base class\n ; class Derived: public Base{ Derived a; In Base class - #include <math.h> class vector2{ protected: double x,y; vector2(){x=0;y=0; vector2(double a, double b){ x=a; y=b; double len(){ return sqrt(x*x+y*y); class vector3: public vector2{ private: double z; vector3():vector2() {z=0; vector3(double a, double b, double c):vector2(a,b){ z=c; double len(){ return sqrt(x*x+y*y+z*z); vector2 p(3,-4); vector3 q(4,3,-5); cout << Length of point p= << p.len()<<endl; cout << Length of point q= << q.len()<<endl; 9

- class upcounter{ protected: int value; upcounter(){ value=0; upcounter(int v) { value=v; void up() { value++; int get_val() { return value; class counter: public upcounter{ counter():upcounter(){ counter(int v):upcounter(v) { void down() { value--; upcounter a(5); counter b(8); counter c; for (int i=0;i<5;i++) { a.up(); b.up(); for (i=0;i<10;i++) b.down(); cout << Value of counter a= <<a.get_val() << \n ; // 10 cout << Value of counter b= << b.get_val() << \n ; // 3 cout << "Value of counter c= " << c.get_val() <<"\n"; // 0 Step 1: Step 2: ( ): ( ){, ( ) 10

(1) class Base{ Base(){ cout << "Base class\n"; class Derived: public Base{ Derived():Base(){ Derived a; Base class Derived class // Derived(){ cout << "Derived class\n"; (2) class Base{ Base class Derived class 2 Base(){ cout << "Base class\n"; class Derived: public Base{ Derived(int j){ cout <<"Derived class " << j <<"\n"; Derived a(2); 11

(3) class Base{ Base(){ cout << "Base class\n"; Base(int j){ cout << "Base "<< j<<"\n"; class Derived: public Base{ Derived(int j):base (j){ cout <<"Derived class " << j <<"\n"; Derived a(2); Base 2 Derived class 2 (destructor) Step 1: Step 2: : class Base{ ~Base(){ cout<< In ~Base()\n ; class Derived: public Base{ ~Derived(){ cout<< In ~Derived()\n ; Derived p; In ~Derived() In ~Base() 12

(abstract class) (abstract class) 1. 2. ( ) (multiple inheritance) C++ (multiple inheritance) Derived Base1 Base2 Base 1 Base2 Base1 Base2 Derived 13

class : public 1, public 2 { private private : class Derived: public Base1, public Base2{ /* */ void set_grade(int n){ grade=n; #include <string.h> int get_grade(){ return grade; class man{ char name[20]; class student: public man, public cis{ int age; void disp(){ void set_name(char *p){ cout << Grade= <<grade<< \n ; strcpy(name,p); cout << Name= <<name<< \n ; char* get_name(){ return name; class cis{ // student john; protected: int grade; john.set_grade(1); john.set_name( John ); john.disp(); 14

- class A{ int x; void y(); class B{ int x; void y(); class C: public A, public B{ void set(); void C::set(){ x=0; // // y(); // :: :: : void C::set(){ A::x=0; B::y(); 15

class : public 1, public 2 : ( ): 1( ), 2( ) 1 2 class Base1{ Base1(){ cout<< Base 1\n ; class Base2{ Base2(){ cout<< Base 2\n ; class Derived: public Base1, public Base2{ Derived():Base1(),Base2(){ cout<< Derived class\n ; Derived a; Base 1 Base 2 Derived class 16

class : public 1, public 2 : ~ () 2 1 class Base1{ Base1(){ cout<<"in Base1\n"; ~Base1(){ cout<<"in ~Base1\n"; class Base2{ Base2(){ cout<<"in Base2\n"; ~Base2(){ cout<<"in ~Base2\n"; class Derived:public Base1, public Base2{ Derived():Base2(),Base1(){ cout << "In Derived\n"; ~Derived(){ cout << "In ~Derived\n"; Derived p; In Base1 In Base2 In Derived In ~Derived In ~Base2 In ~Base1 17