当前位置: 首页 > news >正文

如何做网站直播入口郑州网站设计培训

如何做网站直播入口,郑州网站设计培训,用360云盘做网站,app软件怎么开发怎么分辨const修饰的是谁 是限定谁不能被改变的? 在C中,const关键字的用途和位置非常关键,它决定了谁不能被修改。const可以修饰变量、指针、引用等不同的对象,并且具体的作用取决于const的修饰位置。理解const的规则能够帮助我们…

 怎么分辨const修饰的是谁 是限定谁不能被改变的?

        在C++中,const关键字的用途和位置非常关键,它决定了谁不能被修改const可以修饰变量、指针、引用等不同的对象,并且具体的作用取决于const的修饰位置。理解const的规则能够帮助我们明确代码中哪些部分不能被改变

  • const修饰普通类型变量,修饰的变量的值不能被改变。
  • const int* ptr  ptr指向的值不能被改变
  • int* const ptr ptr指向的地址不能别改变 指向地址的值可以被改变 引用的底层原理
  • const int* const ptr ptr指向的地址和地址存储的值都不能被改变        
  • const int& ptr 常量引用 本来就不能改变引用指向 const修饰后引用的值也不能被改变

const的实际作用取决于它在声明中的位置。

两种在vector中删除元素的方法

1. std::remove + erase

nodes.erase(remove(nodes.begin(), nodes.end(), node), nodes.end());

        这个方法是先通过remove先把k个与node匹配的元素移动到vector的最后 然后实现O(k)时间复杂度的删除操作。适合当数组中存在多个与node相匹配的元素时候使用。

2. std::find + erase

auto it = find(nodes.begin(), nodes.end(), node);
if (it != nodes.end()) {nodes.erase(it);
}

        这个方法是通过find找到一个和node匹配的元素的迭代器,然后直接通过迭代器删除这个元素,总体是O(n)的时间复杂度,比较适合当数组中的元素是唯一的时候使用。

Map和unorderedMap的区别

C++类的大小由什么决定? 

  1. 成员变量的大小:普通成员变量,数组成员变量
  2. 虚函数表和虚函数:如果类中定义了一个虚函数那么他会有一个虚函数表,类中会存储一个指向虚函数表的指针,虚函数表中存储指向虚函数的指针
  3. 继承关系:如果子类继承了一个基类,那么子类会继承父类的成员变量和虚函数,如果父类有虚函数,子类会继承父类的虚函数指针。
  4. 对齐:类中的成员变量会根据其类型要求进行内存对齐,为了满足对齐要求,编译器会在成员之间填充字节来满足对齐要求。

为什么C语言不能重载,C++可以

        C语言缺少C++中的名称修饰机制,C语言的编译器无法分辨参数列表不同的同名函数,如果定义多个参数列表不同的同名函数,在调用函数的时候C语言的编译器无法分辨要调用的函数是哪个,会导致二义性。

函数重写和函数隐藏

        函数重写:子类重写父类的虚函数,必须是虚函数,只有参数列表不同。创建一个父类指针指向子类对象就可以通过指针指向的对象来调用子类重写的虚函数。

        函数隐藏:如果参数列表相同是函数重写,如果函数同名但是参数列表不同就是函数隐藏

子类指针可以调用父类函数吗?

        子类指针可以调用父类函数,前提是子类没有隐藏该函数。如果子类没有隐藏父类的函数(即,子类中没有定义同名但参数不同的函数),那么子类指针可以调用父类中的虚函数(如果该函数在父类中是虚拟的)。

        如果要调用的父类虚函数已经被子类重写了,子类指针调用这个虚函数是会默认调用子类中重写后的函数,如果想调用父类的重写之前的函数可以通过子类中的函数来使用作用域解析符来间接调用父类被重写的函数。

让类只能在栈或者堆上创建对象

只能在栈上创建对象

 // 禁止堆上分配:删除 operator newvoid* operator new(std::size_t size) = delete;
// 禁止堆上删除:删除 operator deletevoid operator delete(void* pointer) = delete;

        但事实上这种方法并不能实现限制类只能在栈上创建对象的目的,因为还可以通过  ::  全局作用域解析符来使用全局的new

只能在堆上创建对象

        把析构函数设置为私有,由于创建在栈上的对象是由编译器自动分配和释放内存空间的,当在栈上创建对象时编译器会检查类的析构函数是否可用,如果不可用则编译器不会在栈上为对象分配空间。

声明和定义的对比

如何阻止类创建对象

  1. 将构造函数私有化或者删除构造函数
  2. 将类设置为抽象类
  3. 禁止拷贝构造和赋值操作符

为什么抽象类不能实例化

  • 抽象类不能实例化的原因是它包含至少一个纯虚函数,这使得它成为一个不完整的类。
  • 抽象类的设计目的是提供接口或基础实现,而具体的行为和实现应由派生类提供。
  • 抽象类可以被派生类继承,并在派生类中实现纯虚函数,从而允许派生类的实例化。

C++的成员函数能调用this指针吗

        成员函数可以使用 this 指针。this 指针是一个指向调用该成员函数的对象的指针。

什么是野指针、悬空指针、空指针

空指针:在C语言中用NULL来表示空指针((void*)0)C++中的空指针是nullptr 代表0

http://www.yayakq.cn/news/367031/

相关文章:

  • 比较出名做耐克的网站HTML发布网站
  • 网站建设正文字体多大合适怎么做淘宝联盟网站制作
  • 0资本建设网站游戏开发制作培训
  • 那家网站建设公司好网站视频插件怎么做
  • 租房网站建设知名广告公司有哪些
  • 网站建设的具体实施方案wordpress 侧边导航菜单
  • 不动产网站建设推广员网站怎么做
  • 网站开发公司应该具备怎样的资质wordpress 加载速度优化
  • 襄阳做网站公司有哪些淘宝网站推广怎么做
  • 360免费wifi助手网络推广优化
  • vs2010网站开发 视频官方网站开发哪家好
  • 一个公司可以做几个网站吗wordpress扫码支付
  • 做网站要域名吗工作感悟的句子
  • 专业网站建设价位net后缀做公司网站
  • 网站建设办公软件销售技巧祥云平台官方网站
  • 做手机网站用什么五路居网站建设
  • php网站开发文档怎么写做网站用什么语
  • 教育培训门户网站模板下载广元做网站站排名
  • 平凉网站开发做网站有什么市场风险
  • 团购网站建设案例武陟县住房和城乡建设局网站
  • 展示形网站怎么建银川做网站公司
  • 电子商务 网站系统河南中建卓越建设管理有限公司网站
  • 当当网的网站建设要求wordpress不锈钢企业
  • 公司做网站如何跟客户介绍微信网站制作北京
  • 网站服务器干啥seo优化信
  • 目录搜索引擎网站十个app制作网站
  • 南京网站建设推广跨境网站入口
  • 网站页面管理做3d动画网站
  • 音乐在线制作网站多媒体设计制作公司北京
  • 沈阳手机网站网站建设培训心得