C++ 学习笔记1

来源:互联网 发布:刷钻软件免费版 编辑:程序博客网 时间:2024/06/10 02:27
C++中结构体 和 类可以通用,结构体中也可以定义函数.区别:在于访问控制。结构体中 缺省成员 都是public类中 缺省:私有的构造函数:1。构造函数最重要的作用是创建对象本身;2. C++规定,每个类必须有一个构造函数,没有构造函数,就不能创建任何对象3. 如果没有提供构造函数,则C++提供一个默认的不带参数的构造函数(由C++编译器提供),完成对象创建4. 如果定义了一个构造函数,则编译器不再提供默认的不带参的构造函数析构函数:构造函数的 取反  对象生命周期结束的时候,会调用析构函数进行内存的回收和对象的释放  构造函数和析构函数 是由系统自动调用的  析构函数 不允许 有返回值,不能带参数,一个类中只能有一个析构函数重载函数: 参数的类型,个数不同,返回值一样1.void output();  int output();不能构成重载,系统不知道调用哪一个2.void output(int a, int b=4);  void output(int a);有缺省值,也不行。this指针:1.this指针 是一个隐含的指针,它是指向对象本身,代表了对象的地址2.一个类所有的对象 调用的成员函数都是同一代码段。3.成员函数除了接受参数外,还接受到了一个对象的地址。pt.output(1,2)这个地址被一个隐含的形参this指针所获取,他等同于执行this=&pt.所有对数据成员的访问都 隐含的加上了前缀this->.x=0--->this->x=0.根据传递对象的地址,来决定调用哪个对象的方法多态性:虚函数,依据传递对象的类型,迟邦定,运行的时候根据对象的类型在基类的方法前加 virtual,子类有调用子类的,没有去调用父类的纯虚函数:一个类中如果含有,virtual void breathe()=0;则这个类为抽象类,不能直接实例化 子类如果没有去实现这个函数,则也为抽象类,不能实例化引用:变量的别名,必须在定义的时候就进行初始化.引用不需要分配内存空间      int a = 6;      int &b = a;      b = 5;//a=5      int c = 10;      b = c;//a=10      传参的时候用的比较多,避免内存的拷贝      int change(int &a, int &b);      change(x,y);