C++ Primer Plus学习:第十章

过程性编程和面向对象编程

面向对象编程(OOP)的特性:

  • 抽象
  • 封装和数据隐藏
  • 多态
  • 继承
  • 代码的可重用性

抽象和类

类是一种将抽象转化为用户定义类型的C++工具,它将数据表示和操纵数据的方法合成一个简洁的包。

类的构造函数和析构函数

构造函数:与类名相同

析构函数:~类名

对象初始化方式:

classname cn=classname(….);或者classname cn(…);

若类的成员函数不修改调用对象,就应该标识为const类型,如:void show() const;

this指针

this指针指向类的调用对象。*this表示对象。

类作用域

类中定义的名称的作用域均为整个类。

作用域为类的常量

enum{k=19};int a[k]; static cons tint k=19;

抽象数据类型(abstract data type)

时间: 2024-10-20 16:19:33

C++ Primer Plus学习:第十章的相关文章

C primer plus 学习随笔

数据类型 int类型  printf()输出八进制整数时,用%o代替%d,输出十六进制时,用%x. %#o.%#x和%#X分别生成0.0x.0X前缀. 1 #include <stdio.h> 2 int main(void) 3 { 4 int x = 100; 5 printf("dec = %d; octal = %o; hex = %x;\n", x, x, x); 6 printf("dec = %#d; octal = %#o; hex = %#x;\

C PRIMER PLUS 学习笔记(一)

1显示程序执行的窗口一闪即逝.可以添加如下语句: getchar() 作用是获取键盘输入. 2 inf 和 nan float toobig = 3.4e38 * 100.0f; float not_a_number = asin(1.2);//math.h printf("%e \t %e\n", toobig,not_a_number); inf-表示无穷大,nan-Not-a-number 3 long double 的输出格式 long double x; x = 3.2e-5

《C++ Primer》学习 之 编译器推断auto类型

/* <C++ Primer>学习 之 编译器推断auto类型 书P61-P62 重点在于程序中的注释,方便以后复习. */ 1 #include <iostream> 2 #include <cmath> 3 #include <string> 4 using namespace std; 5 6 int main() 7 { 8 int i = 0, &r = i; 9 auto a = r; // a : int 10 11 const int

C++ Primer Plus学习笔记之虚函数

C++ Primer Plus学习笔记之虚函数 C++语言的多态性有两种类型:静态多态性和动态多态性.函数重载和运算符重载就是静态多态性的具体表现,而动态多态性是指程序运行过程中才动态的确定操作所针对的对象,它是通过虚函数实现的: 1,虚函数的概念: 一个指向基类的指针可用来指向从基类派生的任何对象,这样就可以达到一个接口多个实现的访问了:虚函数是在基类中被冠以virtual的成员函数,它提供了一种接口界面.虚函数可以在一个或者多个派生类中被重新定义,但要求在派生类中从新定义时,虚函数的函数原型

C++ Primer Plus学习笔记之静态成员

C++ Primer Plus学习笔记之静态成员 关键字static可以用来说明一个类的成员(包括数据成员和成员函数),这样的成员被称为静态成员: 1,静态数据成员 在一个类中,若将一个数据说明前加上static,则该数据成为静态数据,静态数据成员被该类的所有对象共享.无论建立多少个该类的对象,都只有一个静态数据存储空间: 具体语法如下: 类型名 类名::静态数据成员[=常量表达式] 其中,常量表达式用于初始化类的静态数据成员: 静态数据成员属于类,而不属于对象,因为静态成员的存在是不依赖于某个

C++ Primer Plus学习笔记之继承类的初始化顺序

C++ Primer Plus学习笔记之继承类的初始化顺序 基类的构造函数,析构函数和操作符函数operator=是不能被派生类继承的: 那么,当创建一个派生类对象时,怎样调用基类的构造函数对基类的数据进行初始化呢??? 答案是:构造函数执行时遵行先兄长(基类),再客人(对象成员),后自己(派生类)的顺序: 另一方面,执行析构函数时,先执行派生类的析构函数,再执行基类的析构函数.原因是,对基类的破坏隐含了对派生类的破坏,所以派生类的析构函数必须先执行: #include<iostream> u

C++ Primer Plus学习笔记之运算符重载

C++ Primer Plus学习笔记之运算符重载 1,成员函数和友元函数选择的建议 下面我们先看两个例子: 成员函数重载 #include<iostream> using namespace std; class Complex { public: Complex(double r=0,double i=0) { re=r; im=i; } Complex operator+(const Complex& obj); Complex operator!(); void Display

如何利用《C++ Primer》学习C++?

<C++ Primer>作为久负盛名的C++经典教程,丰富的教学辅助内容.精心组织的编程示范,无论是初学者入门,或是中.高级程序员提升,都是不容置疑的首选. 一本好书只有读过才有价值,然而<C++ Primer>这本厚如砖头的好书,很多人在购买之后,都仅仅只是简单翻阅了前面几个章节,而并未能够认真的完整读完该书. 实验楼为了能够让大家能够更好的利用<C++ Primer>学习C++,推出了深入学习<C++ Primer 第五版>训练营,以任务驱动模式学习经典

C++ Primer Plus学习笔记之拷贝构造函数

C++ Primer Plus学习笔记之拷贝构造函数 1,什么是拷贝构造函数 拷贝构造函数有两个含义: 首先,它是一个构造函数,当创建一个新对象时,系统自动调用它: 其次,它将一个已经定义过的对象的数据成员逐一对应的复制给新对象: 如果一个类没有显式定义拷贝构造函数,C++编译器可以为该类产生一个缺省的拷贝构造函数.这个缺省的拷贝构造函数采用C的方式,将拷贝对象的内存一个字节一个字节的拷贝到拷贝对象的内存中(内存拷贝): 2,拷贝构造函数的作用 (1)创建一个新对象,并将一个已存在的对象拷贝到这