初始化列表

1: 对象实例化的时候,在调用构造函数之前,先按照初始化列表初始化成员,然后再进入
构造函数的执行;
2: 初始化列表的格式:
构造函数(): a(0), b(3.5), c(4.6) {}


初始化列表

  • 对象分配内存的时候,在执行构造函数之前来对成员进行初始化;
  • 构造函数后面:每个变量初始化,称为初始化列表;
    • c++_初始化里列表_多态_动态分配_struct_引用

多态

1: 同一个函数名字不同的参数,这个我们称为”多态”;
2: 成员函数多态;
3: 构造函数多态: 实例化的时候,根据参数来选取不同的构造函数;
4: 析构函数没有多态;
5: 多态: 函数是根据名字来判断的,返回值是不受影响的,比如
int test_func()void test_func()是不能同时存在的,不属于多态


  • 函数名字相同,参数不一样称之为多态;
  • 多态:
    • 其实是俩个函数,只是在调用的时候,根据用户传递的参数来选择版本;
    • c++_初始化里列表_多态_动态分配_struct_引用
  • 同一个名字,同样的参数,不同的返回值是否多态呢? 不是,报错;
  • 返回值不能决定多态,编译器无法找到正确的版本,编译器具有二异性,只能报错;
    • c++_初始化里列表_多态_动态分配_struct_引用
  • 构造函数也可以多态:实例化的时候,根据参数来选取不同的构造函数
    • c++_初始化里列表_多态_动态分配_struct_引用
  • 析构函数没有多态;
  • -

C++ 动态内存分配

##

1: 在堆上分配一个C++的对象实例
(1)分配内存
(2)调用构造函数

2: 使用new 在堆上来分配:
new 数据类型(基本数据类型,类)
new 数组类型[数组个数];

3: 使用delete来释放动态内存;
如果是数组要加上 delete [];
如果你new的是一个实例 delete 指针
如果你new的是一个数组 delete[] 指针

4:你new 一个对象,你要考虑这个对象在什么时候delete,才不会有内存泄漏;


  • 在堆上分配一个类的实例;
    • step1:分配内存;
    • step2:调用构造函数;
  • c/++里面使用new来做动态内存分配;
  • 使用delete来释放动态内存;
    • step1:调用析构函数;
    • step2:把内存还给操作系统;
    • new一个对象时,要考虑什么时候delete,才不会内存泄露;
  • c++_初始化里列表_多态_动态分配_struct_引用
  • New 1000个int的数组
    • step1:调用每个元素的析构函数;
    • step2:把内存还给操作系统;
    • c++_初始化里列表_多态_动态分配_struct_引用
  • 分配10个homan
    • c++_初始化里列表_多态_动态分配_struct_引用

c++的struct结构体

1: C++struct 兼容C语言的;
2: struct 也是一个类,所以也可以加入成员函数,不过struct默认的权限是public,和class这点不一样;
3: 具备类的特点,还能够兼容C的语法;


  • struct就是一个类;
  • 兼容c的语法;
  • struct中如果没有指定权限,默认就是public,这就是与class的区别
  • 类里面的其它属性,都适合于struct
    • c++_初始化里列表_多态_动态分配_struct_引用
    • -

引用类型

1: C++有一个新的数据类型,引用类型;
2: 引用是对象内存的”别名”,使用这个别名也能访问对应的内存对象;
3: C语言要修改内存可以传指针,C++要修改内存可以传递变量地址,和变量引用;


  • 变量的别名叫做引用,是一种数据类型;
  • 定义一个引用:xxxx的引用 变量;
  • 跟对应类的大小是一样的,
  • 引用变量是内存的别名,;
  • s_links的别名,代表的是同一块内存
    • c++_初始化里列表_多态_动态分配_struct_引用
  • 没有办法独立一个变量;
  • 指针与引用传递的区别;
    • c++_初始化里列表_多态_动态分配_struct_引用
  • 引用的本质,和变量是同一块内存,只是这块内存的另外名字;
  • 操作内存即可传引用,也可传指针,但引用不会发生实例化的重新拷贝;
    • c++_初始化里列表_多态_动态分配_struct_引用
    • 传引用比较高效

总结

1: 掌握c++初始化列表;
2: 掌握c++的多态,和构造函数多态;
3: 掌握c++ new/delete;
4: 掌握struct
5: 掌握C++的引用数据类型;


–》源代码

相关文章:

  • 2022-02-02
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-02
  • 2021-11-11
相关资源
相似解决方案