C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.

Slides:



Advertisements
Similar presentations
C++语言程序设计教程 第5章 构造数据类型 第6章 C++程序的结构.
Advertisements

移动应用软件开发技术 第二讲:C++编程基础
第 2 章 初探 C++.
第九讲 类与对象 (I)面向对象基础.
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
第八章 类和对象.
C++语言程序设计教程 第7章 类与对象 第7章 类与对象.
資料大樓 --談指標與陣列 綠園.
内容提要 对象的生命周期 构造函数 析构函数 拷贝构造函数. 常宝宝 北京大学计算机科学与技术系
C++语言程序设计 第四章 类与对象 成都信息工程学院计算机系.
函數(一) 自訂函數、遞迴函數 綠園.
啟示錄.
4.1 概述 4.2 类与对象的实现 4.3 对象的初始化和析构 4.4 类的包含 4.5 类模板
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
刘胥影 东南大学计算机学院 面向对象程序设计1 2010~2011第3学期 刘胥影 东南大学计算机学院.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
刘胥影 东南大学计算机学院 面向对象程序设计1 2011~2012第3学期 刘胥影 东南大学计算机学院.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
刘胥影 东南大学计算机学院 面向对象程序设计1 2010~2011第3学期 刘胥影 东南大学计算机学院.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
Object-Oriented Programming in C++ 第一章 C++的初步知识
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
程式撰寫流程.
C++语言程序设计教程 第7章 类与对象 第7章 类与对象.
第四章 小技巧.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
C++程序设计 string(字符串类) vector(容器类).
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
C++大学基础教程 第11章 多态性 北京科技大学 信息基础科学系 2019/4/8 北京科技大学.
Name1..hour //加班時數 name2..hour //請假時數
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计.
C#程序设计基础 $3 成员、变量和常量.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
C++复习2----类与对象.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
物件導向程式設計 CH2.
第三章 数据抽象.
Object-Oriented Programming in C++ 第二章 类和对象
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++程式設計入門 變數與運算子 作者:黃建庭.
C++大学基础教程 第10章 运算符重载 北京科技大学 2019/5/7 北京科技大学.
面向对象技术 练习 ffh.
C++程序设计基础 主讲人:谢昕 华东交通大学信息工程学院 第十~十二讲 多态性和虚函数 2005年春季学期.
第九章 物件導向-進階.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
#include <iostream.h>
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
第 5 章 继承、多态和虚函数 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++语言程序设计 第十章 C++标准模板库 成都信息工程学院计算机系.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
變數與資料型態  綠園.
資料!你家住哪裏? --談指標 綠園.
資料結構與C++程式設計進階 C++與資料結構 講師:林業峻 CSIE, NTU 7/ 5, 2010.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计

“ 目录 C++语言程序设计 基本知识 编程技能 刨根问底 类和对象的定义 对象数组 this指针 构造函数 对象作为普通函数的参数与返回值 析构函数 面向对象程序设计 对象数组 对象作为普通函数的参数与返回值 对象指针和堆对象 this指针 复制构造函数 内部类和命名空间 C++语言程序设计

基本知识 a C++语言程序设计

在定义一个对象的时候要给它分配存储空间,也可以同时给它的数据成员赋初值,称为对象的初始化。 7.2 构 造 函 数 不同的对象如何区分? 区别于其他对象的地方主要有两个,外在的区别就是对象的标识符,即对象的名称,而内在的区别就是对象自身的属性值,即数据成员的值。 在定义一个对象的时候要给它分配存储空间,也可以同时给它的数据成员赋初值,称为对象的初始化。 C++程序中的对象初始化工作由一个特殊的成员函数来完成,就是构造函数。 构造函数是类的成员函数。 因为不同类型的对象的初始化工作是不一样的,因此构造函数从属于某个类的,即每个类都要定义它自己的构造函数。 C++语言程序设计

7.2 构 造 函 数 定义构造函数的一般形式为: class 类名 { public: 类名(形参表); //构造函数的原型 7.2 构 造 函 数 定义构造函数的一般形式为: class 类名 { public: 类名(形参表); //构造函数的原型 //类的其它成员 }; 类名::类名(形参表) //构造函数的实现 //函数体 } C++语言程序设计

7.2 构 造 函 数 定义构造函数: C++语言程序设计 class Clock { public: 7.2 构 造 函 数 定义构造函数: class Clock { public: Clock(int H,int M,int S); //构造函数 void SetTime(int newH,int NewM,int newS); void ShowTime(); private: int Hour; int Minute; int Second; }; Clock::Clock(int H, int M, int S) { Hour=H; Minute=M; Second=S; } Clock MyClock(12,0,1); //正确 MyClock.ShowTime(); Clock b; //错误! C++语言程序设计

7.2 构 造 函 数 构造函数的特点: 函数名: 访问属性: 具有一般函数的特点: 构造函数没有返回类型,不能返回值 C++语言程序设计 7.2 构 造 函 数 构造函数的特点: 函数名: 与类名相同 访问属性: 构造函数一定是公有函数。 是类的成员函数,可以直接访问类的所有数据成员。 具有一般函数的特点: 函数可以带默认形参值,也可以重载。 哪一点除外? 构造函数没有返回类型,不能返回值 C++语言程序设计

7.2 构 造 函 数 构造函数的特点: 每个类都会存在构造函数 C++语言程序设计 不管用户在定义时是否定义。 7.2 构 造 函 数 构造函数的特点: 每个类都会存在构造函数 不管用户在定义时是否定义。 若用户未定义构造函数,编译器会自动添加默认构造函数 若用户定义了构造函数,编译器则不会自动添加 class Clock { public: Clock::Clock()//默认构造函数 {} void SetTime(); void ShowTime(); private: int Hour, Minute, Second; }; class Clock { public: void SetTime(); void ShowTime(); private: int Hour, Minute, Second; }; C++语言程序设计

7.2 构 造 函 数 构造函数的重载: #include <iostream> using namespace std; 7.2 构 造 函 数 构造函数的重载: #include <iostream> using namespace std; class Tdate { public: Tdate(); //第一个构造函数 Tdate(int d); //第二个构造函数 Tdate(int m,int d); //第三个构造函数 Tdate(int m,int d,int y); //第四个构造函数 private: int month; int day; int year; }; C++语言程序设计

7.2 构 造 函 数 构造函数的重载: C++语言程序设计 Tdate::Tdate() 7.2 构 造 函 数 构造函数的重载: Tdate::Tdate() { month=4; day=15; year=1995; cout <<month <<"/" <<day <<"/" <<year <<endl; } Tdate::Tdate(int d) { month=4; day=d; year=1996; Tdate::Tdate(int m,int d) { month=m; day=d; year=1997; Tdate::Tdate(int m,int d,int y) { month=m; day=d; year=y; void main() { //开始用4种方式构造4个对象 Tdate aday; Tdate bday(10); Tdate cday(2,12); Tdate dday(1,2,1998); } C++语言程序设计

7.2 构 造 函 数 复制构造函数(也称为拷贝构造函数) 复制构造函数的形参是类的对象的引用 7.2 构 造 函 数 复制构造函数(也称为拷贝构造函数) 复制构造函数的形参是类的对象的引用 Clock(const Clock & a){……} 复制构造函数与原来的构造函数实现了函数的重载。 自动生成特点 如果在类定义时没有定义复制构造函数,系统会生成默认的复制构造函数。 默认的复制构造函数完成所有数据成员的复制 何时会自动执行复制构造函数: 用一个对象初始化另外一个对象时(通过“=”或括号) 对象作为函数的参数,函数调用时 函数返回对象时 C++语言程序设计

7.2 构 造 函 数 复制构造函数(也称为拷贝构造函数) C++语言程序设计 class Tdate { 7.2 构 造 函 数 复制构造函数(也称为拷贝构造函数) class Tdate { public: Tdate(const Tdate &); …… }; Tdate a; Tdate b=a; void fun( Tdate x) { …… } fun(a); Tdate fun2() { Tdate x; ……. return x; } fun2(); Tdate x = fun2(); C++语言程序设计