C++基本要点复习--------coursera程序设计实习(PKU)的lecture notes

因为一些特性复杂,很多时候也用不到一些特性,所以忘记了,算是随笔,也当作一个临时查找的手册。没有什么顺序,很杂。

1.构造函数通过函数重载的机制可以有多个(不同的构造函数,参数个数,或者参数类型不同。),但是析构函数只能有一个。当没有在代码中写明构造或析构函数时,编译器会自动生成缺省的构造或析构函数。构造函数和析构函数都无返回值。另外,析构函数必须无参数。没写复制(拷贝)构造函数,编译器也会自动生成缺省的复制构造函数。复制构造函数会生成一个临时隐藏的对象,在调用一个以类对象作为参数的函数和调用一个以类对象作为返回值的函数的时候,复制构造函数都会自动调用。

2.对于C++类中的普通成员变量每个对象(实例)会各自有一份,而静态成员变量一共就一份(因为是放在内存中静态存储区的,属于全局),为所有对象(实例)共享。而且哪怕一个对象都不存在,静态成员变量都是存在的。

3.对于C++类中的普通成员函数必须具体作用于某个对象,而静态成员函数并不作用于具体某个对象。静态成员函数本质上是一种全局函数。

4.总结2,3,因此静态成员并不需要通过对象(实例)就可以访问。例如:

类A::静态成员函数;

类A的对象.静态成员函数;

5.必须在定义类的文件中对静态成员变量进行一次初始化或者说明,不然编译能通过,链接不能通过。例如 int 类A::TotalNum = 0;
 其中TotalNum为静态成员变量。

6.在静态成员函数中,不能调用非静态成员函数,也不能访问非静态成员变量。(但是非静态成员函数是能访问静态成员变量的)。

*******************************************************************************************************

1.成员对象:一个类的成员变量是另一个类的对象。

2.包含成员对象的类叫做封闭类。

3.一般对于封闭类,用初始化参数列表来初始化。

4.生成封闭类对象的语句的时候,要明确“对象中的成员对象”要如何进行初始化。

5.当生成封闭类对象的时候,首先会调用其成员对象中的构造函数,然后再调用自身的构造函数。

6.成员对象构造函数的调用顺序:和成员对象在类中的说明顺序一致,与在成员初始化列表中的顺序无关。

7.当封闭类对象消亡时,先调用封闭类的析构函数,再调用成员对象的析构函数。

C++基本要点复习--------coursera程序设计实习(PKU)的lecture notes,布布扣,bubuko.com

时间: 2024-10-09 07:38:55

C++基本要点复习--------coursera程序设计实习(PKU)的lecture notes的相关文章

面向对象程序设计-C++ Finial exam review NOTES【第十六次上课笔记】

写在前面: 我记得也不全,如果有记录的更全的同学可以留言,我会添加哒 :) 常量 内敛函数 为什么需要内敛函数 内敛函数适用于什么场合 内敛函数本身,最大优点是,避免了真正函数调用的开销 因为普通函数调用会有开销,比如开辟一个栈,结束了还要释放局部变量 如果函数体只有寥寥几行,是不值得使用函数 在函数体代码比较短小的时候,使用频繁的,应该使用内敛函数 最大优点:没有函数调用开销,又解决了带有参数宏的简单替换,它有类型检查 引用 什么是引用:给这块区域的数据再增加一个名称(本质含义) 表面上看,相

PKU C++程序设计实习 学习笔记4 文件操作和模板

第七章 文件操作和模板 7.1 文件操作 7.2 函数模板 泛型程序设计(Generic Programming) 算法实现时不指定具体要操作的数据的类型 泛型--算法实现一遍,适用于多种数据结构 优势: 减少重复代码的编写 两种类型 函数模板 类模板 与"抽象.封装.继承.多态"并列 函数模板 template<class 类型参数1, class 类型参数2, - > 返回值类型 模板名 (形参表) { 函数体 } 例子,交换两个变量值的函数模板 template &l

PKU C++程序设计实习 学习笔记

1.7 内联函数和重载函数 内联函数:函数调用是有时间开销的.如果函数本身只有几条语句,执行非常快,而且函数被反复执行很多次,相比之下调用函数所产生的这个开销就会显得比较大. 为了减少函数调用的开销,引入了内联函数机制.编译器处理对内联函数的调用语句时,是将整个函数的代码插入到调用语句处,而不会产生调用函数的语句. 重载函数:一个或多个函数,名字相同,然而参数个数或参数类型不相同,这叫做函数的重载.编译器根据调用语句的中的实参的个数和类型判断应该调用哪个函数. (1) int Max(doubl

PKU C++程序设计实习 学习笔记6 标准模板库STL

标准模板库STL 8.1 STL概述 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用:1.面向对象的思想:继承和多态,标准类库  2.泛型程序设计(generic programming) 的思想: 模板机制,以及标准模板库 STL 简单地说就是使用模板的程序设计法. 将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法. 标准模

PKU C++程序设计实习 学习笔记3 多态与虚函数

第六章 多态与虚函数 6.1 多态和虚函数的基本概念 引言 多态是面向对象程序设计里面非常重要的这个机制.它能很有效的提高程序的可扩充性. 有些程序设计语言有被对象继承的概念,但是没有多态的概念,那这样的程序设计语言只能被称作基于对象的程序设计语言,而不能称为面向对象的语言, 比方说visual basic. 虚函数 在类的定义中,前面有 virtual 关键字的成员函数就是虚函数. class base { <span style="color:#ff0000;">vir

PKU C++程序设计实习 学习笔记4 运算符重载

第四章 运算符重载 4.1 运算符重载的基本概念 1. 运算符 2. 自定义数据类型与运算符重载 C++提供了数据抽象的手段:用户自己定义数据类型 -- 类 ? 调用类的成员函数->操作它的对象 类的成员函数->操作对象时,很不方便 ? 在数学上,两个复数可以直接进行+/-等运算 Vs. 在C++中,直接将+或-用于复数是不允许的 3. 运算符重载 对抽象数据类型也能够直接使用C++提供的运算符 ? 程序更简洁 ? 代码更容易理解 运算符重载 ? 对已有的运算符赋予多重的含义 ? 使同一运算符

PKU C++程序设计实习 学习笔记2

第五章 继承与派生 5.1 继承和派生 继承和派生的概念 继承:在定义一个新的类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点),那么就可以把A作为一个基类,而把B作为基类的一个派生类(也称子类). 派生类是通过对基类进行修改和扩充得到的.在派生类中,可以扩充新的成员变量和成员函数. 派生类一经定义后,可以独立使用,不依赖于基类. 派生类拥有基类的全部成员函数和成员变量,不论是private.protected.public .在派生类的各个成员函数中,不能访问基类中的privat

JAVA SE 基础复习-基本程序设计(1)

1.java基本数据类型 int         4      最大值 0x7fffffff 2147483647=2的31次方-1  首位为符号位   最小值-2147483648  0x80000000  补码存储 首位不变 其他位取反后加1 short     2      最大值2^15-1  32767  最小值-2^15  -32768 long       8     最大值2^63-1    最小值-2^63 byte       1     最大值2^7-1  127  最小值

程序设计实习MOOC / 继承和派生——编程作业 第五周程序填空题1

描述 写一个MyString 类,使得下面程序的输出结果是: 1. abcd-efgh-abcd- 2. abcd- 3. 4. abcd-efgh- 5. efgh- 6. c 7. abcd- 8. ijAl- 9. ijAl-mnop 10. qrst-abcd- 11. abcd-qrst-abcd- uvw xyz about big me take abcd qrst-abcd- 要 求:MyString类必须是从C++的标准类string类派生而来.提示1:如果将程序中所有 "My