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

自开发网站做企业网站需要资质吗

自开发网站,做企业网站需要资质吗,天元建设集团有限公司第十一建筑公司,比较好的网站开发框架文章目录 1. 面向对象 struct和class有什么区别1.1 封装什么是封装 1.2 继承1.3 多态1.3.1 什么是多态#xff1f;1.3.2 虚函数作用和意义1.3.3 什么是纯虚函数和抽象类 2. STL2.1 什么是STL 其创建目的是什么2.2 STL的基本概念以及组成2.3 请简单介绍STL的六大组件2.4 什么是… 文章目录 1. 面向对象 struct和class有什么区别1.1 封装什么是封装 1.2 继承1.3 多态1.3.1 什么是多态1.3.2 虚函数作用和意义1.3.3 什么是纯虚函数和抽象类 2. STL2.1 什么是STL 其创建目的是什么2.2 STL的基本概念以及组成2.3 请简单介绍STL的六大组件2.4 什么是STL容器常用的容器有哪些2.4 请简单介绍vector容器其底层是怎么实现的2.5 push_back做了哪些操作复杂度如何2.6 有没有什么好的办法提升vector连续插入效率2.7 push_back和emplace_back有什么区别2.8 请简单介绍一些set和map他们底层使用什么数据结构存储数据的吗 2.9 map[key]和map.at(key)的区别2.10 查询而言是vector快还是map快 3.指针3.1 指针所占内存空间3.2 什么是空指针和野指针3.3 如何解决空指针、野指针带来的问题3.4 什么是智能指针有哪些智能指针3.5 这三种智能指针有什么不同和用途 4 static和const4.1 static和const的关键用法4.2 const int* 和int * const的区别 参考 作者小王同学在积累 链接https://www.zhihu.com/question/440248845/answer/1698042313 作者二进制架构 链接https://www.zhihu.com/people/binarch/posts?page2 1. 面向对象 struct和class有什么区别 在C中struct和class的唯一区别是默认的访问控制。struct默认的成员是public的而class的默认成员是private的 1.1 封装 C面向对象的三大特性为封装、继承、多态。C认为万事万物都皆为对象对象上有其属性和行为 什么是封装 将属性和行为作为一个整体表现生活中的事物。将属性和行为加以权限控制封装意义 在设计类的时候属性和行为写在一起表现事物。类在设计时可以把属性和行为放在不同的权限下加以控制。访问权限有三种public 公共权限protected 保护权限private 私有权限 1.2 继承 什么是继承 有些类与类之间存在特殊的关系比如动物类和猫类。我们发现定义这些类时下级别的成员除了拥有上一级的共性还有自己的特性。这个时候我们就可以考虑利用继承的技术减少重复代码 1.3 多态 1.3.1 什么是多态 多态分为两类 静态多态: 函数重载 和 运算符重载属于静态多态复用函数名动态多态: 派生类和虚函数实现运行时多态 静态多态和动态多态区别 静态多态的函数地址早绑定 - 编译阶段确定函数地址动态多态的函数地址晚绑定 - 运行阶段确定函数地址 多态需满足的条件 有继承关系子类重写父类中的虚函数多态使用条件父类指针或引用指向子类对象 1.3.2 虚函数作用和意义 虚函数虚函数是用于支持动态多态性的一种机制。如果一个类中声明了虚函数那么在派生类中可以覆盖这个函数。在运行时调用对象的虚函数会根据对象的实际类型来决定调用哪个函数。 1.3.3 什么是纯虚函数和抽象类 在多态中通常父类中虚函数的实现是毫无意义的主要都是调用子类重写的内容因此可以将虚函数改为纯虚函数。 纯虚函数语法virtual 返回值类型 函数名 参数列表 0 ;当类中有了纯虚函数这个类也称为抽象类。抽象类特点无法实例化对象子类必须重写抽象类中的纯虚函数否则也属于抽象类。 2. STL 2.1 什么是STL 其创建目的是什么 软件界一直希望建立一种可重复利用的东西。C的面向对象和泛型编程思想目的就是复用性的提升。大多数情况下数据结构和算法都未能有一套标准导致被迫从事大量重复工作。为了建立数据结构和算法的一套标准诞生了STL。 2.2 STL的基本概念以及组成 STL(Standard Template Library标准模板库)。STL几乎所有的代码都采用了模板类或者模板函数。 STL大体分为六大组件分别是容器、算法、迭代器、仿函数、适配器(配接器)、分配器。 2.3 请简单介绍STL的六大组件 容器各种数据结构如vector、list、deque、set、map等用来存放数据。算法各种常用的算法如sort、find、copy、for_each等。迭代器扮演了容器与算法之间的胶合剂。可以通过迭代器来遍历容器仿函数是一个可执行的对象类型重载了operator()()运算符。适配器适配器是一种设计模式。主要起到将不同的接口统一起来的作用。STL中的容器适配器如stack和queue通过调用容器的接口实现适配器所需的功能。分配器主要用于内存的分配与释放。一般容器都会自带默认分配器很少会自己实现分配器。 2.4 什么是STL容器常用的容器有哪些 容器存放数据的地方。STL容器就是将运用最广泛的一些数据结构实现出来。常用的数据结构数组、链表、树、栈、队列、集合、映射表 等 2.4 请简单介绍vector容器其底层是怎么实现的 vector数据结构和数组非常相似也称为单端数组。vector与普通数组区别不同之处在于数组是静态空间而vector可以动态扩展。 vector底层使用动态数组来存储元素对象同时使用size和capacity记录当前元素的数量和当前动态数组的容量。如果持续的push_back(emplace_back)元素当size大于capacity时需要开辟一块更大的动态数组并把旧动态数组上的元素搬移到当前动态数组然后销毁旧的动态数组。 2.5 push_back做了哪些操作复杂度如何 push_back()用于在vector的末尾添加一个元素。如果当前的容量不足以容纳新的元素那么vector的容量将会翻倍1.5~2倍这需要分配新的内存空间并将现有元素复制到新的位置这是一个O(n)的操作。但是如果考虑到每个元素平均被复制的次数push_back()的平摊时间复杂度是O(1)。 2.6 有没有什么好的办法提升vector连续插入效率 如果知道数据的大概量我们可以使用reserve方法直接为vector扩容这个量级。这样在后续的数据插入时就不会因为频繁的capacity被用尽而导致的多次的数据搬移从而提升vector插入效率 2.7 push_back和emplace_back有什么区别 为什么emplace_back效率更高? push_back()会创建一个新的对象然后复制到vector中而emplace_back()则是在vector中直接构造对象这可以避免不必要的复制或移动操作。 2.8 请简单介绍一些set和map std::set是一个有序的集合其中的元素是唯一的即每个元素只能出现一次。一般用于去重和自动排序。std::map同样是有序组合只不过它不止有key每个key还对用一个value。其中key是唯一不可重复但是value却没有限制。key/value也被称为键值对 他们底层使用什么数据结构存储数据的吗 两者都是使用红黑树作为底层的数据结构。红黑树是一种自动平衡的二叉树它确保插入、删除和查找操作的时间复杂度都是O(log n)。是高效的查找树 2.9 map[key]和map.at(key)的区别 当map中不存在某个key时map[key]操作会在map中增加一个键值对键名为key值是传入的value类型的默认值。而map.at(key)会报错查找时更安全。 2.10 查询而言是vector快还是map快 vector的查询的时间复杂度是O(n)而map是O(logn)。如果在数据集很大的时候当然是map快一些。但当数据量没那么大的时候少于1000条记录vector要比map查询速度快。原因我们在之前的面试文章中讲过vector内存连续缓存更友好。map底层是红黑树内存并不连续。 3.指针 什么是指针 指针的作用可以通过指针间接访问内存。 内存编号是从0开始记录的一般用十六进制数字表示。 可以利用指针变量保存地址。 3.1 指针所占内存空间 在32位操作系统下不管什么类型的指针都占4个字节的内存。在64位操作系统下不管什么类型的指针都占8个字节的内存但是实际开发环境一般都是32位操作系统 3.2 什么是空指针和野指针 空指针指针变量指向内存中编号为0的空间0NULLnullptr。用途初始化指针变量。空指针指向的内存是不可以访问的。野指针指针变量指向非法的内存空间。野就是状态未知的。它可能指向一块未知的区域 0/NULL/nullptr三者之间的区别 虽然三者都能定义空指针但三者类型不同。0是int类型NULL在g下是一个宏定义而nullptr是有类型的建议使用nullptr定义空指针因为它时有类型的编译器能够对它进行类型检查。 3.3 如何解决空指针、野指针带来的问题 在解引用指针之前要判断指针是否为空。解决空指针解引用问题对于定义的指针一定要进行初始化nullptr。解决野指针问题对于释放过内容的指针立即将指针置为nullptr。解决垂悬指针、指针二次释放问题要注意长生命周期的指针不能指向短生命周期的对象。解决垂悬指针问题C11之后使用智能指针 3.4 什么是智能指针有哪些智能指针 智能指针是C11引入的类模板用于管理资源行为类似于指针但不需要手动申请、释放资源所以称为智能指针。有三种智能指针分别是shared_ptr、unique_ptr、和weak_ptr 。 3.5 这三种智能指针有什么不同和用途 shared_ptr使用了引用计数use count技术当复制个shared_ptr对象时被管理的资源并没有被复制而是增加了引用计数。当析构一个shared_ptr对象时也不会直接释放被管理的的资源而是将引用计数减一。当引用计数为0时才会真正的释放资源。shared_ptr可以方便的共享资源而不必创建多个资源。 unique_ptr则不同。unique_ptr独占资源不能拷贝只能移动。移动过后的unique_ptr实例不再占有资源。当unique_ptr被析构时会释放所持有的资源。 weak_ptr可以解决shared_ptr所持有的资源循环引用问题。weak_ptr在指向shared_ptr时并不会增加shared_ptr的引用计数。所以weak_ptr并不知道shared_ptr所持有的资源是否已经被释放。这就要求在使用weak_ptr获取shared_ptr时需要判断shared_ptr是否有效。 4 static和const 4.1 static和const的关键用法 satic关键字主要用在以下三个方面 1.用在全局作用域修饰的变量或者函数为静态的限制在本文件内使用。2.方法内修饰修饰静态局部变量在第一次访问的时候初始化。只能在本文件内使用。3.内类修饰成员函数和成员变量此函数或变量由类持有而非类的对象持有。 const关键字主要也有三个用途 1.修饰函数参数则在函数内部不可以修改此参数。2.修饰类的成员方法表面此方法不会更改类对象的任何数据。3.修饰变量表明变量不可以被修该。 4.2 const int* 和int * const的区别 这要要看const和* 的位置const在前称为常量指针const在后称为指针常量。常量指针的指针的指向可变指针指向的内容不可变。指针常量则相反指针指向的内容可变指针的指向不可变
http://www.zqtcl.cn/news/879281/

相关文章:

  • php网站开发实训报告书怎么做兼职类网站吗
  • 建设银行u盾用网站打不开中企动力值不值得入职
  • 织梦做的网站有点慢商贸网站
  • 海外红酒网站建设wordpress 分类 文章
  • 七星彩网站建设wordpress w3
  • 广州网站建设全包百度怎么优化关键词排名
  • 中山网站制作服务公司做环评的网站
  • 江山市住房和城乡建设局网站iis部署网站 错误400
  • 网站域名如何备案建设厅公积金中心网站
  • 网站怎么建设?电子商务网站开发相关技术
  • 苏州网站设计公司济南兴田德润厉害吗python基础教程第3版
  • 网站多久备案一次电子商务平台信息系统建设
  • 网站开发方面的文献自己怎么建个免费网站吗
  • 建设网站前的市场分析百度竞价推广是什么
  • 专门做照片书的网站阳谷聊城网站优化
  • 国际贸易相关网站网站建设的目标与思路
  • 小型网站建设费用云南网站建设企业推荐
  • 设备租赁业务网站如何做看板娘 wordpress
  • 上海网站设计工作室二手交易网站建设目标
  • 深圳智能响应网站建设平面设计基础教程
  • 网站建设 推广全流程案例分析网站
  • 企业建网站多少钱怎样做网站挣钱
  • 经营性质的网站asp.ne做网站
  • 天津都有哪些制作网站开网站挣不挣钱
  • 网站建设云技术公司推荐重庆网页设计培训
  • 做房产网站不备案可以吗北京爱空间装修公司
  • 手机网站是用什么开发的厦门公司网站制作流程
  • 网站是广西住房和城乡建设厅wordpress插件数据库存在哪
  • 网站图片如何做链接网站制作及管理教程
  • 企业建立企业网站有哪些优势?app下载排行榜