C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.

Slides:



Advertisements
Similar presentations
四資二甲 第三週作業 物件導向程式設計.
Advertisements

7.2 访问控制 —— 公有继承 公有继承练习 //Point.h #ifndef _POINT_H #define _POINT_H class Point { //基类Point类的定义 public: //公有函数成员 void initPoint(float x = 0, float.
第八章 类和对象.
第10讲 Java面向对象编程基础(4) 教学目标 主要内容.
C++语言程序设计教程 第7章 类与对象 第7章 类与对象.
走向C++之路 WindyWinter WindyWinter感谢诸位前来捧场。
C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班.
内容提要 对象的生命周期 构造函数 析构函数 拷贝构造函数. 常宝宝 北京大学计算机科学与技术系
第九章 结构体 主讲教师 :贾月乐 电话:
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第4章 面向对象编程方法 王德俊 上海交通大学继续教育学院.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
Object-Oriented Programming in C++ 第一章 C++的初步知识
授课老师:龚涛 信息科学与技术学院 2018年4月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第11讲 类的继承 1. 类的继承的概念 2. 类的单继承机制 3. 单继承中的构造函数和析构函数.
C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班.
辅导课程六.
第9章 类和对象(一) 9.1 面向对象的基本概念 9.2 类与对象的声明和定义 9.3 成员函数 9.4 对象的访问 9.5 对象的存储.
第1章 C++基础.
C++程序设计 string(字符串类) vector(容器类).
Ch02-基礎語法.
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第十章 用户自定义数据类型 目录 学生信息管理系统的开发 结构体数据类型的概述 结构体变量的使用 结构体数组
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
第11讲 类的继承 1. 类的继承的概念 2. 类的单继承机制 3. 单继承中的构造函数和析构函数.
$9 泛型基础.
第14讲 运算符重载 运算符重载的概念、方法和规则 运算符重载作为类的成员函数 运算符重载作为类的友元函数 特殊运算符的重载 类型转换函数.
C#面向对象程序设计 $6 深入理解类.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
Classes (1) Lecture 6.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++复习2----类与对象.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
物件導向程式設計 CH2.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第三章 数据抽象.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++程式設計入門 變數與運算子 作者:黃建庭.
C++大学基础教程 第10章 运算符重载 北京科技大学 2019/5/7 北京科技大学.
第九节 赋值运算符和赋值表达式.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
辅导课程十五.
#include <iostream.h>
第7章 模板 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
C++语言程序设计(第4版) 第七章 继承与派生 数学与统计科学学院 胡凤珠.
變數與資料型態  綠園.
第十二章 C与C C转入C++时不需改变的内容 12.2 C转入C++的一些与类无关的 新特性
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计

“ 目录 C++语言程序设计 基本知识 编程技能 刨根问底 类的静态成员 包含内嵌对象的派生类构造 常对象和常成员 类的组合 赋值运算符重载 友元 运算符重载 包含内嵌对象的派生类构造 包含内嵌对象的派生类析构 赋值运算符重载 C++语言程序设计

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

9.1 类的静态成员 类的静态成员 用来解决同一个类的不同对象之间数据和函数的共享问题 包括: C++语言程序设计 类的静态数据成员 类的静态成员函数 C++语言程序设计

9.1 类的静态成员 例如: 抽象出所有学生的共性,设计学生类 如果需要统计学生人数,该数据存放何处? C++语言程序设计 类外的变量存储人数? 不能实现信息隐藏 用类的数据成员存储人数? 每个对象都存储一个副本 冗余 容易产生数据不一致问题 理想方案:类的所有对象共同拥有一个用于存放 人数的数据成员 class Student { public: Student(int, char *, int, ); ~Student(); void printstu(); private: int id; string name; int age; float score; }; C++语言程序设计

9.1 类的静态成员 静态数据成员 是由该类的所有对象共同维护和使用 它是类的数据成员的一种特例,采用static关键字来声明,每个类只有一个副本,用来实现了同一类的不同对象之间的数据共享 它具有静态生存期,可以由类的任何一个对象来访问 静态数据成员是属于类的,可以通过类名对它进行访问 语法格式:类名::标识符 类的声明中只能声明静态数据成员的存在,静态数据成员的初始化需要在类的外部进行 C++语言程序设计

例:定义学生类,定义一个静态数据成员count,用来统计学生的人数 9.1 类的静态成员 例:定义学生类,定义一个静态数据成员count,用来统计学生的人数 //静态数据成员的定义和使用 #include <iostream> #include <string> using namespace std; class Student { public: Student(char* pName ="no name"); ~Student(); void PrintC private: static int count; //若写成count=0则非法 string name; }; C++语言程序设计

9.1 类的静态成员 C++语言程序设计 Student::Student(char* pName)// ="no name") { cout <<"create one student\n"; name=pName; count++; //静态成员,每创建一个对象,学生人数增1 } Student::~Student() cout <<"destruct one student\n"; count--; //每析构一个对象,学生人数减1 cout<<"The number of students is "<<count<<endl; void Student::PrintC(){ 静态数据成员count的初始化在类外进行,利用类名来引用、不用再写static int Student::count =0; void main() { Student s1; s1.PrintC(); Student s2; s2.PrintC(); } C++语言程序设计

9.1 类的静态成员 静态成员函数 是使用static关键字声明的函数成员 静态成员函数也属于整个类,由一个类的所有对象共享 对于公有静态成员函数,可以通过“类名::静态成员函数名”来调用 在创建任何对象前,这类函数就可以被调用 也可以通过对象来调用 C++语言程序设计

前例修改:在创建任何对象前,输出count的初始值 9.1 类的静态成员 前例修改:在创建任何对象前,输出count的初始值 class Student { public: Student(char* pName ="no name"); ~Student(); //PrintC()函数定义为静态成员函数: static void PrintC(){ cout<<"The number of students is “ <<count<<endl; } private: static int count; //若写成count=0则非法 string name; }; int Student::count =0; void main() { //通过类名调用静态成员函数 Student::PrintC(); Student s1; s1.PrintC(); Student s2; s2.PrintC(); } C++语言程序设计