Effective C++

effective c++ 和 more effective c++中知识点 尽可能使用 const在 C++ 编程中,尽可能使用。 阅读详情

Effective C++ 50条款

 

第一章    从C转向C++

条款1:尽量使用const和inline而不用#define

条款2:尽量用<iostream>,而不用<stdio.h>

条款3:尽量使用new和delete而不用malloc和free

条款4:尽量使用C++风格的注释

第二章    内存管理

条款5:对应的new和delete要采用相同的形式

条款6:析构函数里对指针成员调用delete

条款7:预先准备好内存不够的情况

条款8:写operator new和operator delete时要遵循常规

条款9:避免隐藏标准形式的new

条款10:如果写了operator new就要同时写operator delete

第三章    构造函数,析构函数和赋值操作

条款11:为需要动态分配内存的类声明一个拷贝构造函数和一个赋值函数

条款12:尽量使用初始化而不要在构造函数里赋值

条款13:初始化列表中成员列出的顺序和它们在类中声明的顺序相同

条款14:确定基类有虚虚构函数

条款15:让operator返回*this的引用

条款16:在operator中对所有数据成员赋值

条款17:在operator中检查给自己赋值的情况

第四章    类和函数:设计与声明

条款18:争取使类的接口完整并且最小

条款19:分清成员函数,非成员函数和友元函数

条款20:避免public接口出现数据成员

条款21:尽可能使用const

条款22:尽量用“传引用”而不用“传值”

条款23:必须返回一个对象时不要试图返回一个引用

条款24:在函数重载和设定参数缺省值间慎重选择

条款25:避免对指针和数字类型重载

条款26:当心潜在的二义性

条款27:如果不想使用隐式的函数就要显式地禁止它

条款28:划分全局名字空间

第五章    类和函数:实现

条款29:避免返回内部数据的句柄

条款30:避免这样的成员函数:其返回值是指向成员的非const指针或引用,但成员的访问级比这个函数要低

条款31:千万不要返回局部对象的引用,也不要返回内部用new初始化的指针的引用

条款32:尽可能地推迟变量的定义

条款33:明智地使用内联

条款34:将文件地编译依赖型降至最低

第六章    继承和面向对象设计

 

条款35:使公用继承体现

条款36:区分接口继承和实现继承

条款37:绝不要重新定义继承而来的非虚函数

条款38:绝不要重新定义继承而来的缺省参数值

条款39:避免 "向下转换" 继承层次

条款40:通过分层来体现 "有一个" 或 "用...来实现"

条款41:区分继承和模板

条款42:明智地使用私有继承

条款43:明智地使用多继承

条款44:说你想说的,理解你所说的

第七章    杂项

条款45:弄清C++在幕后为你所写,所调用的函数

条款46:宁可编译和链接错误时出错,也不要在运行时出错

条款47:确保非局部静态对象在使用前被初始化

条款48:重视编译器警告

条款49:熟悉标准库

条款50:提高对C++的认识

 

[Effective modern cpp]现代c++区别 读书笔记创建对象时使用()和{}的区别空指针优先选用nullptr,而非0或null 创建对象时使用()和{}的区别 1、大括号可以指定容器的初始内容&amp;gt;。 std::vector&amp;lt;int&amp;gt; v{1,3,5} 2、大括号可以用来为非静态成员指定默认初始化值,也可以用’='的初始化语法,不能用()。 class Widget{ ... private: int x{0};/... 阅读详情

相关推荐

Effective C++ 总结

当变量定义出现时,程序需要承受其构造成本;当变量离开其作用域时,程序需要承受其析构成本。因此,避免不必要的变量定义,以及延后变量定义式直到你确实需要它。// 效率低// 效率高Widget w;i < n;++i) {w = 取决于 i 的某个值;...这种做法产生的开销:1 个构造函数 + 1 个析构函数 + n 个赋值操作i < n;++i) {Widget w(取决于 i 的某个值);...这种做法产生的开销:n 个构造函数 + n 个析构函数。

qq_31978997的博客 370

Effective-Modern-Cpp 项目常见问题解决方案

Effective-Modern-Cpp 项目常见问题解决方案 项目基础介绍 Effective-Modern-Cpp 是一个开源项目,旨在提供 C++11 及其之后标准的最佳实践。该项目适合希望快速入门现代 C++ 的开发者,特别是那些已经掌握 C++ 基础语法和 C++98 最佳实践的开发者。项目主要使用 C++ 编程语言,包含了一系列关于现代 C++ 编程的最佳实践和技巧。 主要编程语言 ...

gitblog_00864的博客 444

Effective Modern C++ Scott Meyers 类型推导 Type Deduction 《Effective STL》 vector and string

Effective Modern C++》是一本由Scott Meyers撰写的书籍,该书主要讨论了C++11和C++14(现代C++)中的关键特性和最佳实践,以帮助读者编写出更高效、更安全、更易维护的代码。Scott Meyers是世界顶级的C++软件开发技术权威之一,他曾是C++ Report的专栏作家,并为C/C++ Users Journal和Dr. Dobb’s Journal等刊物撰稿。

万有文的博客 2301

Effective-Modern-CPP 开源项目指南

Effective-Modern-CPP 开源项目指南 项目概述 本指南旨在帮助开发者快速理解和上手 Effective-Modern-C++ 这一开源项目。该项目基于Scott Meyers的同名书籍《Effective Modern C++》,旨在通过代码示例展示C++11及以后版本中的现代编程实践和技术。 1. 项目目录结构及介绍 ├── README.md # 项目说明文件,包...

gitblog_00774的博客 472

别自己写CDC了!聊聊Xilinx AXI4-Stream Clock Converter IP里的寄存器管道模式到底有多省资源

本文探讨了Xilinx AXI4-Stream Clock Converter IP核的寄存器管道模式在FPGA设计中的高效资源利用。通过对比手工CDC实现,详细解析了IP核的精简化同步架构和时序收敛优势,并提供了实战案例和优化策略,帮助工程师快速实现时钟域转换,显著提升设计效率和性能。

weixin_33738555的博客 442

GD32的低功耗模式:睡眠、深度睡眠与待机模式

GD32F4xx提供三种主要低功耗模式,功耗逐级降低:睡眠模式 (Sleep Mode)关闭CPU时钟,保持外设运行任意中断/事件唤醒深度睡眠模式 (DeepSleep Mode)关闭CPU和大部分外设时钟需特定唤醒源(外部中断、RTC等)待机模式 (Standby Mode)最低功耗,仅备份域维持供电仅支持复位、RTC、WKUP引脚唤醒。

波风水门的博客 2277

effective modern cpp

中文网页版 https://github.com/kelthuzadx/EffectiveModernCppChinese https://www.kancloud.cn/kangdandan/book/169968

janeqi1987的专栏 495

别再到处找模型了!手把手教你将TI、ADI官网的SPICE模型导入LTspice(附路径避坑指南)

本文详细介绍了如何将TI、ADI官网的SPICE模型导入LTspice的全流程,包括模型获取、路径配置、符号生成等关键步骤,并提供了路径避坑指南。通过实战案例和技巧分享,帮助电子工程师高效利用外部元器件模型进行电路仿真,提升设计效率。

weixin_42535703的博客 408

【Cpp】《Effective C++》第一章-让自己习惯C++

  这是我在学习《Effective C++》中总结得出的心得与体会,完全是以我自己的理解所作的笔记,是对个人经验的积累。基于第三版我以每个章节进行总结,全书一共九个章节。 第一章-让自己习惯C++ 条款01:视C++为一个语言联邦   View C++ as a federation of languages.   在初期Cpp被开发之初,Cpp并没有如今这样丰富的功能,它更应该被称为仅是一个带...

qq_41669298的博客 341

Matlab双目相机标定

1 概述 现在有许多双目相机在出厂时就已经标定好了,用户拿到手后可以直接使用,例如Intel Realsense系列。但是有些相机出厂的时候并没有完成标定工作,因而这个时候就需要我们自己来标定。由于笔者曾改装过一个双目相机,最远可以测至50m,因此有一定的心得体会想给大家分享一下。本文主要介绍双目相机标定的整个过程,以及导出标定数据的方法。 相机标定主要分为手动标定和自动标定,手动标定比较繁琐,这里主要介绍基于matlab工具箱的自动标定方式来对双目相机进行标定。具体的相关标定细节也可以参照这篇博客:m

weixin_46133643的博客 2万+

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode)

本文档旨在指导开发者如何搭建基于Rust语言的STM32嵌入式开发环境。相比传统的C/C++开发方式,Rust提供了更强的内存安全保障和现代化的语言特性,非常适合嵌入式系统开发。本指南将详细介绍从环境搭建到项目配置的全过程,特别关注VSCode作为IDE的配置以及STLink和DAPLink调试器的使用。

u014627020的博客 2601

Effective C++ 学习笔记

C++程序员分为两种,一种是读过Effective C++的,一种是没读过。这本《Effective C++》 能够协助成为高效的C++开发者。简直是C++开发者的分水岭。 必须细读多遍。 本人小硕菜鸡一枚,非科班,准备今年7月从事C++开发者,修炼内功,一天学习一个effective C++条款。欢迎大佬指导讨论。 fighting!

Ref.Ptr.的博客 3869

[南大ICS]PA1 - 开天辟地的篇章: 最简单的计算机

task PA1.1: 实现单步执行, 打印寄存器状态, 扫描内存 task PA1.2: 实现算术表达式求值 task PA1.3: 实现所有要求, 提交完整的实验报告

qq_42474104的博客 1570

Effective C++与More Effective C++全书签中英文版本

Effective C++与More Effective C++全书签中英文版本 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库提供了C++程序员必备的进阶学习资料——《Effective C++》和《More Effective C++》的中英文对照版本。压缩包内共计四本书籍,其中《Effective C++》中文版为高清影印版,其余三本均为文字版本,保证清晰度,...

gitblog_06722的博客 352

lammps教程:非晶sio2建模方法

大家好,我是小马老师。 本文介绍非晶sio2的建模方法。 sio2的建模方法有很多,可以下载cif文件使用atomsk转为data文件,也可以直接在ms中导入sio2结构,这些方法建的sio2都是标准的sio2晶体。 如果要建立非晶状态的sio2,就是把排列规则的sio2变成无序排列的sio2。 非晶建模方法有很多,在lammps中,可以通过高温高压的方法打乱sio2的排列实现非晶建模。 代码中的温度和步数可根据需要自己调整。 下面给出in文件案例代码。 units metal atom

lammps_jiayou的博客 5269

解决Office 365 SMTP问题:C#邮件发送详解

本文介绍了如何在C#中使用Office 365 SMTP服务发送邮件。重点讲解了正确配置SMTP客户端的关键参数:必须使用587端口并启用TLS加密(EnableSsl=true),同时通过NetworkCredential进行身份验证。虽然SmtpClient已不推荐用于新项目,但本文提供的代码示例仍适用于临时项目或系统维护,并建议未来可考虑使用MailKit等现代邮件库。文章还包含了错误处理机制,确保程序健壮性。

2501_90323865的博客 141

Effective & More Effective C++总结

 一、说明。1、E指的是《Effective C++ 第二版》2、M指的是《More Effective C++ 第二版》二、总结1、如果需要定制自己的operator new(通常是在需要分配大量的小对象,而且对性能要求特别敏感的程序里),具体的使用准则请参看 E7/E8/E9/E10。     (1)、全局的operator new 在里定义,可以通过::operator

jimmy_cheung_jc的专栏 765

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

再读effective c++

现在所说effective C++的系列历史,最开始Meyers出版的是effective C++第一版,然后有了more effective C++,然后是effective C++的第二版,接着是effective C++的第三版,最后是最新的 effective modern C++。effective modern C++里主要讲C++ 11的现代编程语言特性,包括类型推导,移动语义,右值

zhouguoqionghai的博客 3239

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

《effective C++》阅读笔记

《effective C++》阅读笔记

subtitle_的博客 1047

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Effective C++和More Effective C++

More Effective C++读书笔记 条款1:指针与引用的区别 二者之间的区别是:在任何情况下都不能用指向空值的引用,而指针则可以;指针可以被重新赋值以指向另一个不同的对象,但是引用则总是指向在初始化时被指定的对象,以后不能改变 在以下情况下使用指针:一是存在不指向任何对象的可能性;二是需要能够在不同的时刻指向不同的对象 在以下情况使用引用:总是指向

clam_clam的专栏 6972

Effective Cpp 条例解析

Effective 条例解析Effective 条例解析 一 让自己习惯C 1 视C为一个语言联邦 2 尽量以constenuminline 替换define 3 尽可能使用const 4 确保对象在使用前已经被初始化 二构造析构赋值运算 1 了解C默默编写并调用哪些函数 2 如果不想使用编译器提供的函数应当明确拒绝 3 为多态基类声明virtual析构函数 4 别让异常逃离析构函数 5 绝不在构造

李兰溪的专栏 1012

Note Of Effective C++ 、More Effective C++ And Effective Modern C++

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 Note Of Effective C++ 、More Effective C++ And Effective Modern

weixin_41077017的博客 1718

C++primer、Effective C++应该怎么读,如何读?

导读 刚开始C++的学习肯定就是拿起书就开始读,读了一会就放下就干别的,带最后没翻过几页。下面我就说一下,我是怎么读的,我大概一个暑假就把这两本读完了。 C++ primer 计划 有人听到计划可能退缩了,计划都是骗人的,都是假的。我的计划有点和别人不一样。听我细细道来。 首先我规定自己一天必须读完一章。这一章不管大小(当然后面的泛型或者虚函数的地方可以规定半章一天)。大家不用分的太细,几点到几点...

曲怪曲怪 1884

Effective_Modern_Cpp

摘自:https://www.kancloud.cn/kangdandan/book/169966

qq_40230900的博客 235

CPP & 笔记 - More Effective C++

基础议题 Item M1:指针与引用的区别 指针 存在不指向任何对象的可能 需要能够在不同的时刻指向不同的对象 引用 必须指向一个对象,并且不想改变其指向 在重载操作符,并为防止不必要的语义误解时,如: char &operator[](size_t idx); Item M2:尽量使用 C++ 风格的类型转换 static_cast<type>(expression):用于变量类型转换 const_cast<type>(expression):用于转换表达

灰黑的博客 302

《C++ Primer》和《Effective C++》哪个更难?

维度学习曲线渐进平缓但周期长陡峭(依赖前置知识)难点类型知识广度 $\propto$ 记忆量理解深度 $\propto$ 经验积累典型挑战模板特化、移动语义异常安全、资源管理价值阶段语言入门 $\to$ 进阶规避陷阱 $\to$ 工业级代码建议:初学者建议先通读《C++ Primer》建立知识框架,再通过《Effective C++》深化实践认知。两本书配合使用效果最佳,前者解决"怎么做",后者解决"怎么做更好"。

2509_93016958的博客 521
上一篇: Kingofark关于学习C++和编程的50个观点2003修订版
下一篇: Aaron Kwok
Image_Graphics
博客等级 码龄20年 18粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值