0613# 3 八股

2024-06-13 15:52
文章标签 八股 0613

本文主要是介绍0613# 3 八股,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

拷贝初始化和直接初始化

string str1("I am a string");//语句1 直接初始化
string str2(str1);//语句2 直接初始化,str1是已经存在的对象,直接调用拷贝构造函数对str2进行初始化
string str3 = "I am a string";//语句3 拷贝初始化,先为字符串”I am a string“创建临时对象,再把临时对象作为参数,使用拷贝构造函数构造str3
string str4 = str1;//语句4 拷贝初始化,这里相当于隐式调用拷贝构造函数,而不是调用赋值运算符函数
  • 如果 std::string 类的拷贝构造函数在类中被声明为 private,那么语句3和语句4将无法编译通过。这是因为拷贝初始化需要调用拷贝构造函数,而在 private 访问控制符下,非友元类和成员函数无法访问它。
  • 使用 explicit 关键字修饰构造函数时,它可以防止隐式类型转换。这意味着带有 explicit 关键字的构造函数不能用于拷贝初始化,只能用于直接初始化。
  • 对于语句3:由于 explicit 构造函数不能用于隐式转换,因此编译器无法隐式地将 "I am a string" 转换为 std::string,然后调用 explicit MyClass(const std::string& s) 构造函数

初始化发生在对象创建时,而赋值发生在对象创建之后

extern "C"</

这篇关于0613# 3 八股的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1057748

相关文章

代码随想录八股训练营第三十七天| C++

前言 一、map和unorder_map的区别? 1.1.内部实现: 1.2.排序: 1.3.查找效率: 1.4.内存使用: 1.5.迭代器: 1.6.键的唯一性: 1.7.使用场景: 二、C++11 新特性有哪些? 2.1.std::map: 总结 前言 在现代软件开发中,选择合适的数据结构如 C++ 标准库中的 std::map 和 std::unordered_

代码随想录八股训练营第三十六天| C++

前言 一、push_back()和emplace_back()的区别? 1.1.push_back(): 1.2.emplace_back(): 1.3.区别总结: 1.4.使用场景: 二、map dequeu list 的实现原理? 2.1.std::map: 2.2. std::deque: 2.3. std::list: 2.4. 区别总结: 总结 前言 在C+

【面试八股总结】MySQL日志:undo log、redo log、binlog

MySQL中存在三种日志: undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。redo log(重做日志):是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复;binlog (归档日志):是 Server 层生成的日志,主要用于数据备份和主从复制; 一、回滚日志undo log

九银十拿到大模型(LLM)offer,面试八股

金九银十拿到大模型(LLM)offer,面试八股 从事大模型的朋友在 金J九银十拿到了一份不错的offer,面试十几家公司,通过了六家。好在分享了大佬总结的大模型方向面试的常见题目(含答案),短时间内过了一边,能针对的回答。有了面试框架更容易拿到offer,分享给大家,祝大家都能拿到自己心仪的offer

代码随想录八股训练营第三十一天| C++

前言 一、虚函数怎么实现的: 1.1.虚函数声明:: 1.2.虚函数表(vtable): 1.3.函数指针:: 1.4.动态绑定: 1.5.析构函数: 1.6.纯虚函数: 二、虚函数表是什么?? 2.1. 虚函数表的工作原理:: 2.2. 虚函数表的作用:: 2.3.虚函数表的实现细节: 总结 前言 在面向对象编程中,多态性是一个核心概念,它允许我们以统一的方式处理

【C++八股题整理】内存布局、堆和栈、内存泄露、函数调用栈

C++八股题整理 内存布局C++中的内存分配情况堆和栈的内存有什么区别? 堆堆内存分配慢如何优化?内存池内存溢出和内存泄漏是什么?如何避免?内存碎片是什么?怎么解决? 栈为什么栈的访问效率比堆高?函数调用时栈的变化?函数的参数列表为什么从右往左入栈? 内存布局 C++中的内存分配情况 区域存储内容分配方式生命周期栈 (Stack)局部变量、局部常量、函数的参数和返回地址自

代码随想录八股训练营第二十七天| C++

前言 一、什么是内存泄漏?如何检测和防止? 1.1.内存泄漏通常发生在以下几种情况: 1.2.如何检测内存泄漏: 1.3.如何防止内存泄漏: 二、什么是野指针,怎么避免? 2.1. 野指针的产生原因: 2.2. 避免野指针的方法: 总结 前言 本文将深入探讨C++内存管理的核心概念,包括内存泄漏的定义、检测方法和预防策略,以及野指针的问题和避免技巧。通过这些内容的详

代码随想录八股训练营总结篇 2024年8月

代码随想录八股训练营总结篇 2024年8月 1. 报名初衷 ​ 随着秋招的临近,我意识到自己需要迅速提升各方面的技术能力。但是在准备过程中,我自己学习动力不足,常常难以坚持。为了找到一群志同道合的学习伙伴,共同营造学习氛围,我决定报名参加八股训练营。参加训练营的初衷是希望能够系统性地学习这些领域的核心内容,并将其应用到实际工作中。我带着这样的期待,从2024年7月22号开始了这段为期40天的学

前端速通面经八股系列(六)—— Vue(下)

接上ueue Vue下篇 四、路由1. Vue-Router 的懒加载如何实现2. 路由的hash和history模式的区别1. hash模式2. history模式3. 两种模式对比 3. 如何获取页面的hash变化4. `$route 和$router` 的区别5. 如何定义动态路由?如何获取传过来的动态参数?6. Vue-router 路由钩子在生命周期的体现7. Vue-rou

前端速通面经八股系列(三)—— JS上篇

目录 一、数据类型1. JavaScript有哪些数据类型,它们的区别?2. 数据类型检测的方式有哪些3. 判断数组的方式有哪些4. null和undefined区别5. typeof null 的结果是什么,为什么?6. intanceof 操作符的实现原理及实现7. 为什么0.1+0.2 ! == 0.3,如何让其相等8. 如何获取安全的 undefined 值?9. typeof N