变量
如何声明变量
类型 变量名
整型
数据类型 | 占用空间 |
---|---|
int(整型) | 4 |
short(短整型) | 2 |
long(长整型) | Win:4 |
longlong(长整型) | 8 |
浮点型
数据类型 | 占用空间 |
---|---|
float(单精度) | 4 |
double(双精度) | 2 |
字符型
数据类型 | 占用空间 |
---|---|
char | 1 |
字符串型
数据类型 | 占用空间 |
---|---|
string |
布尔型
数据类型 | 作用 |
---|---|
bool | ture(1):真 false(0):假 |
函数
函数就是用来执行特定任务的代码块
头文件
头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。
在引用时,表示直接将头文件的内容复制到cpp文件中使用。
以#pragma once开头,表示只包含这个文件一次。
#include “”使用引号来包含这个头文件,表示包含相当于当前文件的文件
#include <> 使用时表示包含着同一个目录中即可引用,只用于编译器包含路径
条件与分支语句
1、if
2、if else
3、if else if
循环
1、for( ; ; )
2、while( )
3、do{ } while( )
控制流语句
1、continue 跳过循环体剩余代码直接进行下一次循环
2、break 终止循环
3、return 终止程序
指针
一个指针只是一个地址,是保存内存地址的整数。
·`int var=1;
int* ptr=&var;
*ptr=2;
int **buffer=&ptr`
用&取出变量的地址,并将指针指向这个地址,使用*解引用并修改指针指向地址的值,**双指针,***三指针
引用
引用是指针的扩展,通常是指针的伪装。
引用必须引用已经存在的变量,引用本身并不是新的变量,并不占用内存。
int a=1;
int*b=&a;
int& c=a;
c=d;
c就是a的别名。
引用不可以改变引用的值,即c不能再等于d。
在定义引用时必须马上给引用赋值。
C++类
使用class+变量名(唯一)来定义一个类,并在类中定义变量及函数,默认情况中,类中的成员都是私有的,只有类中的函数才能访问这些变量,在main使用类需要手动将class成员设为public。
struct的默认成员为public。
static
类外定义static,该静态变量只能对定义它的翻译单元可见,就是只在这一个cpp文件中能够访问到,其他cpp文件不可访问。
类内定义static,该静态变量与类的所有实例共享内存。
class Student{
public:
static int name;
static int score;
static void print(){
cout<<name<<score<<endl;
}
};
int Student::name;
int Student::score;
这样看name和score是类中的成员,其实他们不属于这个类,需要在类外定义,静态方法可以访问静态成员,如上述代码所示,但是静态方法不能够访问非静态成员。
局部静态变量允许我们声明一个变量,它的生存期基本上相当于整个程序的生存期。
枚举
enum Example :int
{
A,B,C
}
默认A=0并依次递增,也可手动指定ABC的数值,数值必须为整数,说明不能设置为float类型。
构造函数
构造函数是一种特殊类型的方法,每次调用类创建对象时都会调用,它没有返回类型,并且它的名称必须与类的名称相同。
class Student
{
public:
int X,Y;
Student(){}
Student(int x,int y){X=x;Y=y;}
}
int main(){
Student stu(1,3);
}
C++编辑器中默认有无参构造函数,可以通过Student()=delete
删除。
析构函数
用来卸载变量,清理占用的内存,~Student(){ };
继承
继承允许我们有一个关联的类的层次结构,允许我们有一个包含公共功能的基类,并生成子类。
class Student : public Entity
通过public(公有)/private(私有)/protect(保护)继承父类变成及其函数。
虚函数
假设B是A的派生类,则可以在A类中标记virtual函数,并在B类中重写方法,让它做其他的事情, 在C++11中加入了override覆写函数用于标识函数的重写方法。
class Entity
{
public:
int X;
virtual string getX(){return "this is X";}
}
class Student : class Entity
{
public:
int Y;
Student(const string& y):Y(y){}
string getX() override {return Y;}
}
纯虚函数
纯虚函数允许我们在基类中定义一个没有实现的函数,强制子类去实现该函数。只需要将虚函数的定义修改为 virtual string getX()=0;
就是纯虚函数。