Effective C++读书笔记之将成员变量声明为private

Petalinux实战:3种方法调试AXI UART Lite设备(含minicom/screen/直接寄存器操作对比) 本文详细介绍了在Zynq平台上使用Petalinux调试AXI UART Lite设备的三种实用方法:用户空间工具(minicom/screen)、应用层程序(termios配置)和底层寄存器直接操作。文章对比了各方法的优缺点与适用场景,并重点解析了设备树配置、驱动加载等关键环节,帮助开发者快速定位并解决串口通信中的常见问题。 阅读详情

 不使用public成员变量可以有很多的好处。
 1) 语法一致性。当成员变量是private时,你只能通过函数访问它们。那么对类的成员的调用都需要带"()"了
 2) 可以提供访问控制。如果成员变量为public时,每个人都可以访问它们。当为private时,你可以实现只读,只写等的访问。
 3) 类的封装。如果你通过函数访问成员变量,可以为所有的可能的实现提供弹性。public意味着不封装。
 注意:protected成中变量和public成员变量的性质相似。从封装的角度来说,其实只有两种访问权限:private(封装)和其他(不封装)。所以成员变量最好是声明为private,而不是其它。
 总结:
 1) 切记将趸变量声明为private,这可赋予客户访问数据的一致性,可划分访问控制,允诺约束条件获得何证。并提供class作者以充分的实现弹性
 2) protected并不比public更具封装性

leetcode134 加油站 题目如下 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。 说明: 如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输... 阅读详情

相关推荐

数字芯片后端设计实战:Memory Compiler参数配置与SRAM生成优化

本文深入解析数字芯片后端设计中Memory Compiler的核心参数配置与SRAM生成优化策略。详细探讨了容量结构、频率设定、工艺角选择等关键参数的配置要点与常见误区,并提供了从.lib/.lef文件转换到后端流程整合的实战指南,旨在帮助设计者生成面积、性能和功耗更优的存储单元。

weixin_29194255的博客 701

《Effective C++》笔记:关于 public 继承 和 private 继承的一点思考

前端时间看了《Effective C++》,里面对public继承和private继承的解释,我感觉有点迷糊,public还好说,is-a关系。但private继承却不是很理解。知道这几天看了设计模式中的适配器模式,才略有理解。 如果有不同意见或我的想法有错,请指出,也欢迎和大家交流、共同进步。 里面关于适配器中一部分的代码是这样的: //使用继承,类模式 class Deq...

xuanhuangwendao的博客 203

Linux命令行入门:从零掌握服务器运维与Shell脚本基础

在信息化时代,操作系统是数字世界的基石,而终端命令行则是高效驾驭服务器的核心技能。无论是软件部署、服务监控还是故障排查,掌握基于Shell的指令操作都能大幅提升工程效率。从最基础的文件目录管理、文本处理,到权限控制、进程监控与网络调试,命令行提供了一套强大且可自动化的操作范式。尤其对于运维工程师和开发者而言,理解管道、重定向以及脚本化任务,意味着将重复劳动转化为可复用的自动化流程。本文从环境准备讲起,系统梳理常用Linux命令的实际场景与输出验证,并延伸至Shell脚本编写与定时任务,帮助初学者快速建立从操

weixin_30522983的博客 255

关于C++类成员访问级别(public,protected,private)与继承的形式(public, private)

最近在看effective C++,看到第六部分——继承与面向对象设计,对类成员访问级别(public,protected,private)与继承的形式(public, private)的有时候会有点迷糊,这里理清一下思路。 我觉得首先要弄清楚,类的定义和类的使用。 简单来说,类的定义就是设计类里面应该有什么成员函数,什么数据,以及成员函数的实现。而类的使用是通过定义好的类来产生对象,

FS's Home 2280

shader基于高度的权重混合

效果图: 基于高度的权重混合 , 效果描述: (1)混合:三层混合, 例如 第一层是草,第二层是石头,第三层是沙子,三者混合显示 (2)权重: 三层的权重的和 为1, 三者是此消彼长的关系 (3)高度:高度会限制或者说是 束缚 着 效果 关于混合,再多说几句: (1)基于权重的混合:权重 ,跟顺序没有关系 只跟权重的大小有关系(在一层一层界限不清晰的地方,特别适用!!效果极好!!!!) (2)基于叠加的混合: 叠加 就是 一层一层的往上加。。。。 所以顺序特别重要(在雪地等效果中使用:因为

木马人 1117

STM32F4的sct文件理解

原文地址http://blog.sina.com.cn/s/blog_898f36590100ya2l.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...

weixin_34008805的博客 995

读书笔记《Effective C++》条款22:将成员变量声明为private

要点: 1.切记将成员变量声明为private。 2.protected并不比public更具封装性。

Do-Program的专栏 278

生存分析机器学习问题

然而,随着人工智能 (AI) 和机器学习 (ML) 的兴起,科学家现在能够开发更复杂的模型,揭示这些数据集中的模式和特征,从而为癌症的生物学、诊断、预后、治疗和预后提供新的见解。病情更重的患者可能接受更强(或更弱)的治疗,导致治疗方案与不良预后(死亡)强相关。数据集中包含失访或研究结束时仍存活的患者(删失数据),他们的真实生存时间未知,仅知道其存活时间不低于观察到的最后一次随访时间。优先选择参数少、结构简单的模型(如带强正则化的线性模型、简单树模型),避免复杂模型(如深度神经网络)。时刻的状态是未知的。

4AM_明朝百晓生 1223

Effective C++ 读书笔记 条款22:将成员变量声明为private

Core List 1. 将成员变量声明为 private 的好处 (1) 语法一致性

444

【全球人口数据集】全球人口密度数据集GPWv4

全球人口密度数据集GPWv4

WW、forever的博客 1002

Xilinx高级调试方法--远程调试

本文主要介绍Xilinx的一些高级调试方法,以及如何使用Xilinx的相关IP。

斌赋的博客 3308

读书笔记《Effective c++》 条款22 将成员变量声明为private

本节主要是可见性和封装的问题。 结论:   a.切记将成员变量声明为private。这可赋予客户访问数据的一致性、可细微划分访问控制、允诺约束条件获得保证,并提供class作者以充分的实现弹性。   b.protected并不比public更具有封装性。

木头刀 250

Multisim14.0仿真(五十九)基于74LS161的24进制计数器应用设计

它具有同步预置、异步清零功能,支持并行数据加载,并可在计数使能控制下进行二进制计数。:低电平时,在下一个时钟上升沿加载输入数据(A, B, C, D)。(多个 74LS161D 串联构成 8 位、12 位等更长计数器)。低电平时,下一个时钟上升沿加载输入数据(A, B, C, D)。:低电平有效,立即清零计数器(不受时钟控制)。均为高电平时,每个时钟上升沿计数。:两者均为高电平时,计数器才能递增。:立即清零计数器(不受时钟控制)。(通过预置初始值控制计数范围)。(计数范围:0 ~ 15,即。

corlin6688的博客 4760

读书笔记_Effective_C++_条款二十二:将成员变量声明为private

这个条款从字面意思上理解很简单,很多程序都是这样做的,即使作为初学者,也知道该将成员变量声明为private,但有没有想过,为什么要这样做? 为什么public成员变量不行?protected成员变量行不? 举一个简单的例子: 1 class Clothes 2 { 3 public: 4 int price; 5 string name; 6 }; 假设...

weixin_30391339的博客 157

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Effective C++读书笔记---将成员变量声明为Private;宁以非成员、非友元函数替换成员函数

将成员变量声明为Private 原因如下: 1,语法一致性,暴露出来的都是函数 2.可以对每一个变量实现权限控制,“不准访问”“只读访问”“读写访问” 3.具备更好的封装性,可以有效保障在更改某些成员变量时不会影响客户的使用 protected成员变量同样不具备较好的封装性。 宁以非成员、非友元函数替换成员函数 此条款的逻辑是这样的,当我们讨论一个类的封装性的时候。越

PENGH56的专栏 475

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Effective cpp 读书笔记5

设计与声明(下) 22.将成员变量声明为private 23.宁以non-member、non-friend替换member函数 24.若所有参数皆需类型转换,请为此采用non-member函数 25.考虑写出一个不抛出异常的swap函数

GZGlenn的博客 417

Effective C++ 读书笔记(八)

如果你要在成员函数和非成员函数之间做抉择,而两者提供相同的机能,那么非成员函数较好一些,因为其不增加可访问类内private成分的函数数量,这也解释了我们开始的问题。假设一个public成员变量被取消,所有使用它的客户代码都会被破坏,因此,public成员变量没有封装性。c++标准库不是单一的,整体的、庞大的再一个头文件中包含所有东西,而是有数十个头文件<vector><memory>等等,每个头文件声明某些机能,如果客户只想用vector,就没必要包含其他。越多函数可访问它,数据的封装性越低。

qq_53660404的博客 636

Effective C++ 读书笔记(4)

第四章 设计与声明 本章共有如下8个条款: 条款18 让接口易被使用,不易被误用 条款19 设计 class 犹如设计 type 条款20 宁以 pass-by-reference-to-const 替换 pass-by-value 条款21 必须返回对象时,别妄想返回其 reference 条款22 将成员变量声明为 private 条款23 宁以 non-member、non-friend...

SunnyZhang在奋斗的博客 388

Effective C++读书笔记

本篇记录一下首次研读Effective C++的知识点和自己的理解,会分条款逐一阐述。 条款01:视C++为一个语言联邦     C++有四个次语言,次语言之间相互协调,当你在编写程序的时候,最有可能运用到的就是次语言之间的相互转换,所以可以分开来学习,熟悉了每一块之后再联合起来使用。 C:C++任然是以C为基础,区块、语句、预处理器、内置数据类型、数组、指针等都是延续C的传统。 面向对象...

haha与长颈鹿的博客 228

《effective C++》读书笔记(二)

11. 1)       如果你为class添加一个成员变量(尤其是类成员变量),你必须同时修改copying函数,所有构造函数以及任何非标准形式的operator=。 2)       copying函数应该确保复制“对象内的所有成员变量”及“所有base class成分”。在子类中要注意调用基类的构造函数(或copying构造,或operator=等)来完成对基类的操作。 3)

projectoflion123的专栏 363

Effective C++ 读书笔记 Item39 明智而审慎地使用 private 继承

Item 32提出public继承表示"is-a"的关系,这是因为编译器会在需要的时候将子类对象隐式转换为父类对象。 然而private继承则不然: class Person { ... }; class Student: private Person { ... }; // inheritance is now private void eat(const Person& p...

Vermont_的博客 320

Effective C++ 读书笔记(二)

所谓编译单元是指产出单一目标文件的那些源码,包括源码文件和其所包含的头文件。static对象是指其寿命是从被构造出来到程序结束为止。该对象包括global对象、namespace内的对象、文件内、class内、函数内被声明为static的对象。函数内的static对象称为local static对象,其他均为non-local static对象。

qq_53660404的博客 766

Effective C++读书笔记(六)——设计与声明

1.必须返回对象时,别妄想返回其reference class Rational { public: Rational(int numerator=0,int deominator = 1); ... private: int n,d; friend const Rational operator*(const Rational& lhs,const Rational& rhs); } 函数创建新对象可以在stack空间或heap空间创建。 stack.

baidu_15952103的博客 193

《Effective c++》读书笔记 4.设计与声明

本章讲的是c++接口的设计与声明,让接口容易被正确使用,不容易被误用 18.让接口容易被正确使用,不易被误用(没看懂) 19.设计class犹如设计type(没看懂) 20.宁以pass-by-reference-to-const替换pass-by-value 原因: 1.以by value方式传递一个对象,要新创建一个对象的副本,成本很高 2.对象切割:当派生类对象以by value方式传递并被视为基类对象时,会变成基类对象,派生类的特性就没有了,而用引用传递没有这个问题 内部原因:pass by ref

ziggy7的博客 140

Effective C++读书笔记四(设计与声明)

条款18:让接口容易被正确使用,不易被误用 如果客户企图使用某个接口而却没有获得他所预期的行为,那么这个代码就不该通过编译;如果代码通过了编译,它的所作所为就应该是客户想要的。 要是想开发一个“容易被正确使用,不容易被误用”的接口,首先必须考虑客户有可能做出什么样的错误。来看个例子: class Date { public: Date(int month, int day, in...

Amber的博客 272

Effective C++读书笔记——item22(明确变量的作用域和访问权限)

成员函数来控制对它们的访问。这样可以提高代码的健壮性、可维护性和可扩展性,同时提供了更多的设计灵活性,是一种更好的软件设计实践。为了实现良好的封装性、精确的访问控制、代码的一致性和易维护性,应该将成员变量声明为。

weixin_46032775的博客 430

Effective C++读书笔记——item18(让接口更易使用)

【代码】Effective C++读书笔记——item18(让接口更易使用)

weixin_46032775的博客 827
上一篇: Effective C++读书笔记之必须返回对象时,别妄想返回其reference
下一篇: Effective C++读书笔记之宁以non-member、non-friend替换member函数
anthit
博客等级 码龄21年 13粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值