加载中…
个人资料
裴大帅2020
裴大帅2020
  • 博客等级:
  • 博客积分:0
  • 博客访问:697,185
  • 关注人气:63
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

C++复习笔记

(2020-09-22 16:31:40)
分类: 编程技术
1、hello world:
#include

int main(int argc, char** argv) {
std::cout << "hello world!" << endl;
return 0; 
}

2、c++基本内置类型
bool / char / int / float / double / void / wchar_t

3、typedef声明
为一个已有的类型取一个新的名字。
typedef int feet;
feet distance;

4、枚举类型
将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。
enum color {red, green, blue} c;
c = blue;

5、变量唯一性定义
使用extern关键字声明一个变量,虽然可以多次声明该变量,但是变量在某个文件、函数或代码块中被定义一次。

6、定义常量
(1)使用#define 预处理器
#define LENGTH 10
(2)使用const 关键字
const int LENGTH = 10;

7、c++函数函数声明,告诉编译器函数名称及如何调用函数,参数的名称并不重要,只有参数的类型是必须的。
int max(int, int);

8、函数参数
(1)传值调用:把参数的实际值赋值给形参,在这种情况下,修改函数内的形参对实参没有影响。
(2)指针调用:把参数的地址赋值给形参。在函数内,该地址用于访问调用中要用到的实参,这意味着,修改形参会影响到实参。
(3)引用调用:把参数的引用赋值给形参,在函数内,该引用用于访问调用中要用到的实参,这意味着,修改形参会影响到实参。

9、数组
(1)所有的数组都是由连续的内存位置组成。
(2)数组声明
double balance[10];
(3)初始化数组
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
(4)指向数组的指针
double *p;
double runoobAarray[10];
p = runoobAarray;
一旦把第一个元素的地址存储在p中,就可以使用*(p+1)等来访问数组元素了。

10、指针
(1)变量地址:每一个变量都有一个内存位置,每一个内存位置都定义了可使用&运算符访问的地址,它表示了在内存中的一个地址。
int var1;
count << &var1 << endl;
(2)指针值的数据类型都是一样的,都是一个代表内存地址的长的十六进制数。
(3)指针使用:
int var = 20;
int *ip;
ip = &var; // 在指针变量中存储var的地址

11、数据结构
(1)定义结构:
struct Books{
char title[50];
char author[50];
char subject[100];
int book_id;
};
(2)指向结构的指针
Books book1;
printBook(&book1);

void printBook(struct Book *book){
cout << book -> title << endl;
}

12、类的继承
class Rectangle: public Shape
class Rectangle: public Shape, public PaintCost

13、抽象类
如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。设计抽象类的目的,是为了给其他类提供一个可以继承的适当的基类。它不能被用于实例化对象,只能作为接口使用。
class Box
{
public:
virtual double getVolumn() = 0;
private:
double length;
}

14、命名空间
命名空间定义了一个范围。
// 第一个命名空间
namespace first_space{
   void func(){
      cout << "Inside first_space" << endl;
   }
}
// 调用第一个命名空间中的函数
first_space::func();

using namespace指令:在使用命名空间时就可以不用在前面加上命名空间的名称。这个指令会告诉编译器,后续的代码将使用指定的命名空间中的名称。
// 第一个命名空间
namespace first_space{
   void func(){
      cout << "Inside first_space" << endl;
   }
}
// 第二个命名空间
namespace second_space{
   void func(){
      cout << "Inside second_space" << endl;
   }
}
using namespace first_space;
int main ()
{
 
   // 调用第一个命名空间中的函数
   func();
   
   return 0;
}

15、模板
模板是泛型编程的基础,泛型编程以一种独立于任何特定类型的方式编写代码。
模板是创建泛型类的蓝图。
(1)函数模板定义:
template ret-type func-name(parameter list)
{
   // 函数的主体
}
在这里,type是函数所使用的数据类型的占位符名称,这个名称可以在函数定义中使用。
#include
#include  

using namespace std; 

template
inline T const& Max(T const& a, T const& b){
return a < b ? b : a;
}

int main(int argc, char** argv) {
int i = 39;
int j = 20;
cout << Max(i, j) << endl;
return 0; 
}

&表示引用的意思,引用的好处是减少数值传递过程中的时间。
(2)类模板
template class class-name{
...
}
type是占位符类型名称,可以在类被实例化的时候进行指定。

16、预处理器
预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。
预处理指令不是c++语句,所以他们不会以分号结尾。
#include指令:用于把头文件包含到源文件中
#define指令:用于创建符号常量

17、信号处理
信号是由操作系统传给进程的中断,会提早终止一个程序。
(1)signal()函数定义:
signal(registered signal, signal handler)
第一个参数是一个整数,代表了信号的编号;第二个参数是一个指向信号处理函数的指针。
(2)raise()函数定义:
int raise(signal sig);
该函数带有一个整数信号编号作为参数。

18、多线程
(1)创建线程
pthread_create(thread, attr, start_routine, arg)
(2)终止线程
pthread_exit(status)

19、C++标准模板库
模板库提供了通用的模板类和函数,可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。
容器:用来管理某一类对象的集合,比如deque、list、vector、map等
算法:算法作用于容器,可对容器内容执行初始化、排序、搜索和转换等操作
迭代器:迭代器用于遍历对象集合的元素。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有