赞
踩
一、c++基本语法
对象:具有状态和行为。如一只具体的狗,具有什么样的颜色名称和行为。对象是类的实例。
类:描述对象行为和状态的模板,是一个大分类,由类可以创建很多对象。
方法:一个方法表示一种行为,一个行为可以包含多个方法。
即时变量:每个对象都有其独特的即时变量。对象的状态由即时变量的值创建
三元字符组:用于表示另一个字符的单个字符序列,以两个问号开头(不重要)
数据类型:bool,char,int,float,double,void,wchar_t(=short int),enum(枚举类型),type*(指向类型为type对象的指针),type[]或type[size](数组),struct(结构体,包含多个不同类型成员的结构),class,union(共用体类型,在相同的内存位置存储不同的数据类型。)
修饰符:signed(有符号,可以存储负数),unsigned(无符号),short,long
枚举类型enumeration:是c++的一种派生数据类型,由用户定义的若干枚举常量的集合。用于定义一组命名的整数常量。
类型转换:静态转换,动态转换,常量转换和重新解释转换。
静态转换 Static Cast:将一种数据类型强制转换为另一种。int i =10; float f = static_cast<float>(i);
动态转换Dynamic Cast:用于将一个基类指针或引用转换为派生类指针或引用。在运行事进行类型检查,不能进行转换则返回空指针或引发异常。
常量转换Const Cast:将const对象转换为非const对象,不能改变对象类型。const int i = 10; int& r = const_cast<int&>(i);
重新解释转换Reinterpret Cast:将一个数据类型重新解释为另一个数据类型的值。int i =10; float f = reinterpret_cast<float&>(i);(不太理解这个重新解释的意思,跟强制转换有什么区别)
在内部作用域中声明的变量与外部作用域中的变量同名,则内部作用域中的变量将覆盖外部作用域中的变量
0x表示十六进制,0表示八进制,不带前缀表示十进制
static定义静态变量,作用域仅限于当前文件和函数内,不会被其他文件和函数访问
register 用于定义寄存器变量,表示该变量被频繁使用,可以存储在CPU的寄存器内,提高程序的运行效率
运算符%:取模运算符,整除后的余数
&&:与运算,两个都为true时得到ture;||:或,存在true得到true;!:非
^:异或,一样时为0;<<:左移;>>:右移
sizeof:获取数据类型大小;condition?X:Y:如果condition为真,则值为X,否则为Y(?符号可以用来代替if...else);Cast:强制转换;&:返回变量实际地址;*:指向一个变量(指针)
内置的数学函数,引用头文件<cmath>
生成随机数:rand(),返回一个伪随机数,生成随机数之前必须先调用srand()函数,产生随机数种子,不然会生成一样的随机数
c++的i/o操作发生在流中,字节流从设备流向内存叫输入操作,从内存流向设备叫输出操作。
输出 cout << ...,出入cin >> name >> age
使用cerr流显示错误信息,其他日志消息使用clog流来输出,使用方法和cout一样的
二、代码熟悉
抬头:# include <iostream> using namespace std;
cout << “hello word” << endl:打印hello word并换行
c++可以使用char和string来存储字符串,string更方便,可以当作数字来进行相加(#include <cstring> )
extern声明变量相当于一个加强版全局变量,在任何地方声明一个变量,可以在所有文件中使用
类的创建和作用域(这里没有建一个对象,而是使用类名和作用域解析运算符::来访问变量)
定义常量的两种方式:#define LENGTH 10 const type variable = value;
数组:double balance[ ] = {1000.0, 2.0, 3.4, 7.0, 50.0};
指向数组的指针:double *p = balance;cout << *(p + i) << endl;(得到指定位置的数字)
三、类的存储
register 存储类:定义存储在寄存器而不是RAM中的局部变量(不是很理解)
static 存储类:在程序的生命周期内保持局部变量的存在,而不需要在每次进入和离开作用域时进行创建和销毁,使用static修饰局部变量可以在函数调用之间保持局部变量的值。修饰全局变量时,使作用域限制在声明它的文件内。(意思就是static修饰的变量在这个文件内不会消失)
extern 存储类:用于在另一个文件中声明一个全局变量或函数,通常用于有两个或多个文件共享相同的全局变量或函数的时候。
四、指针和引用
区分ip和*ip,ip输出的是地址,*ip输出的是值
**ptr:指向指针的指针
c++从函数返回指针:
引用&和指针*的区别
使用引用来实现引用调用函数和把引用作为返回值
五、数据结构
格式:
访问结构成员使用(.)object_name.member_name1
指向结构的指针: struct Books *struct_pointer;
查找结构变量的地址:struct_pointer = &Book1;
使用指向该结构的指针访问结构的成员,->:struct_pointer->title;
总结:结构体使用.,指向结构的指针使用->,修改指向结构体的指针时,结构体的数据也会改变创建使用结构的指针时需要&指向。
typeof关键字:可以直接使用Books来定义Books类型的变量,而不用再使用struct关键字(不是很理解区别)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。