C++极客班学习笔记 一
来源:互联网 发布:知乎怎么注册不了手机 编辑:程序博客网 时间:2024/05/16 12:22
C与C++区别
c的代码包含了变量和函数,由于没有提供相关的关键字,所以C代码里面变量都是全局的,这样带来的问题是所有函数都可以去调用它们。
C++就将变量和函数包在了一起,通过面向对象的方式,来更加细的划分变量和函数的使用范围。
C++代码结构
C++由头文件和实现文件组成,头文件用于声明函数和变量,头文件一般是.h结尾,实现文件一般是.cpp结尾。但是这些不是强制性的,也就是说头文件可以不是.h结尾。
防卫式声明
有时会出现嵌套引入,比如文件中引入了一个头文件a,在另一个引入的头文件中,也引入了同样的头文件a,这样include会执行两次,代码冗余,因此,需要引入防卫式声明:
#ifndef __COM__
#define __COM__
#endif
模板
类可以通过模板来进行对其进行扩展,比如变量可以不再定义的时候指定类型,而在实例化的时候指定。
内联函数
内联函数指的是直接在头文件中给出函数的具体实现,但是编译器会根据代码的复杂度来决定是否真正的当成inline函数,inline函数执行快,理论上所有函数都应该写成inline比较好。
访问级别
public和private
private只能在自己的类内容中访问,外面访问不到。
构造函数
名称和类名相同,无返回值,可以设置默认值,可以使用初值列来初始化。
函数重载(overloading)
类中可以有多个同名的成员函数,这个叫函数的重载;表面上看函数名称是一样的,区别在与参数,实际上,编译器会对这些函数进行处理,处理后的函数名称是不同的。
同时,如果构造函数重载过程中,以下问题是不能够同时存在的:
原因在于:前者参数都是有默认值的,后者没有参数,遇到诸如:complex c1();或者complex c2;的对象创建语句,编译器无法判断到底采用哪个构造函数,因此上文的写法不正确。
私有构造函数(多用于单例)
如果构造一个私有的构造函数,表示这个类不能再外部被实例化,那么,我们可以在类内部实例化一个对象,并将对象设置为static,这样的话,我们可以得到一个单例。
const
看以下例子:
这个例子是无法通过执行的,会报以下错误:
大致意思是ct实例是const类型的,但是其geta方法为被标记为const,因此编译不通过。
上例可以看出,其实const是标定函数或者变量,限定函数体内不能修改成员函数的值,或者限定变量的值不能够被修改。
作业二思路
构造函数可以有两种写法
1、
这个第三个参数为Point的对象指针,麻烦的地方在于需要在构造函数中对整个Point对象进行操作
2、Rectangle(int width1 = 0, int height1 = 0, int x1 = 0, int y1 = 0)
这个方式操作成本较低
3、拷贝构造函数也是构造函数一种特例,是没有返回值的
3、拷贝赋值函数,和拷贝构造的区别在于,this对象已经构造好了,只需要对其进行赋值操作就行了,返回值可以是type& 或者void(void最好不用,无法传递)
0 0
- c学习笔记(一)
- 【C++】学习笔记一
- C#的学习笔记(一)
- Linux c 学习笔记(一)
- 学习《c++primer》笔记一
- c语言学习笔记一
- c 学习笔记 (一)
- C语言学习笔记一
- 《C++Primer》 学习笔记一
- C/C++学习笔记(一)
- 一.c++primer学习笔记
- Objective-c 学习笔记(一)
- C语言程序设计学习笔记一
- c语言学习笔记一
- Objective C学习笔记(一)
- Objective-C 学习笔记一
- objective-c 学习笔记一
- C语言学习笔记一
- 面经阅读
- 姿态解算中的欧垃角与四元数
- 封装与访问控制
- android ViewDragHelper详解
- TextView组件改变部分文字的颜色和多字符串拼接
- C++极客班学习笔记 一
- C++ vertor用法
- <JavaWeb-Servlet学习>Servlet连接数据库错误
- 制作帮助文档
- 1. 搭建工程
- Google Snappy string 压缩/解压缩(Java)
- Develop -- Training(十一) -- 通过NFC共享文件
- ExpandableListView
- FZU 1002 HangOver(简单题目)