第12章--类--重学C++之《C++ PRIMER》

美团mtgsig 1.2算法分析 mtgsig1.2的一些算法总结 阅读详情

一定义

   类的成员分为public,private,和protected三种。

   类内部定义的函数默认为inline。

对于成员函数,在形参表之后添加const关键字,得到常量成员函数,则此成员函数不能改变操作对象的数据成员。

类可以有class和struct两个关键字定义。区别:在类的左括号之后,第一个访问标号之前;如果是class定义的,则默认这些成员是私有的;如果是struct定义的,则默认这些成员是公有的。

重载成员函数。

显式指定inline成员函数。

二隐含的this指针

三类作用域

□”.”左边跟对象,“->”左边跟指针。

成员函数中使用到的名字的查找顺序:

1查询成员函数局部作用域。

2查询类作用域。

3查询外围作用域。(成员函数出现之前的作用域)。

四构造函数

1构造函数初始化式

Sales_item::sales_item(const string &book):isbn(book),units_sold(0),revenue(0.0){}

构造函数分两个阶段执行:(1)初始化阶段:(2)普通的计算阶段。计算阶段由构造函数中的所有语句构成。

解析:

(a)也就是说在构造函数发挥作用之前,对象有一个初始化阶段;如果不能正常初始化(比如,某数据成员没有定义默认初始化),则报错。

(b)也就是说:在开始执行构造函数之前,必须完成初始化。

□必须对任何const或者引用类型成员以及没有默认构造函数的类类型的任何成员使用初始化式。

成员初始化的顺序与声明的顺序是一样的。

Eg<

Class X{

Int i;

Int j;

Public:

X(int val):j(val),i(j){}

};

这个程序可能是错误的,因为i先被初始化。报错的原因是:使用为初始化的j来初始化i.

2默认构造函数

只有当类没有定义构造函数时,编译器才会自动生成一个默认构造函数。

所以,如果定义了其他构造函数,提供一个默认构造函数几乎总是对的。

(因为这可以避免很多麻烦,比如,假如没有默认构造函数,则构造函数必须提供初始化值,才能继续执行)。

用单个实参来调用的构造函数定义了从形参到该类类型的一个隐式类类型转换。

使用explicit可以抑制构造函数定义的隐式转换。

Eg,

类sales_item

explicit sales_item(std::istream &is);构造函数

same_isbn(sales_item&);成员函数

则对于item.same.isbn(cin)会报错(cin不会因为构造函数自动转化为类类型);但是去掉explicit就不会报错。

□单形参构造函数最好为explicit从而避免错误。

五友元函数

友元机制允许一个类将其非公有成员的访问授予指定的函数或者类。

六static类成员(函数或者数据)

类的static成员理解:1类似全局对象。2理解为此类定义的全局对象。使用前加上类的名字。3static数据成员是与类关联的对象,并不与该类的对象关联。

Static数据成员必须在外部定义(仅仅一次)。(内部只能声明,不能定义和初始化)

Static const 数据成员即使在类声明时初始化,也必须在外部定义。

Eg,

Class ac{

Static const int pe=30;

}

Const int ac::pe;

 

 

 

 

 

流体动力学仿真软件:SU2_(1).SU2简介与安装 SU2 是一个开源的计算流体动力学(CFD)和计算结构动力学(CSD)仿真软件,由斯坦福大学的航空航天系开发。它主要用于解决流体动力学问题,包括但不限于空气动力学、热力学、化学反应流等。SU2 的特点在于其高度的灵活性和可扩展性,使其成为科研和工业领域中非常受欢迎的工具。SU2 采用有限体积法(FVM)和有限元法(FEM)进行数值求解,支持多种物理模型和求解器,如 Euler 方程、Navier-Stokes 方程、RANS 方程等。 阅读详情

相关推荐

麒麟系统下的多媒体革命:VLC在kylinV10上的性能优化与调试技巧

本文详细介绍了在麒麟kylinV10系统上优化VLC多媒体播放性能的实战技巧,特别针对飞腾FT-2000/4硬件平台。从源码编译调优到硬件加速配置,提供全面的性能提升方案,帮助开发者在国产操作系统上构建高效媒体播放环境。

weixin_29168675的博客 457

重学c++ Primer Plus纪要(第1-15章)

1. 面向过程与面向对象 面向过程的理念:是强调算法的过程性编程,就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象的理念:强调数据的OOP,设计与问题的本质特性相对应的数据格式,是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 2. c++与c的区别(特性) (1)面向对象:强调数据,通过类和类的对象来实现,具有3大优势。 a.类的继承 b.多态:C++有两种多态,称为动多态

sinat_30065705的博客 526

Nginx反向代理MinIO私有桶签名失效?一招解决Host头校验问题

本文详细解析了Nginx反向代理MinIO私有桶时出现的签名失效问题,重点解决了Host头校验导致的"SignatureDoesNotMatch"错误。通过精准配置proxy_set_header保持Host头一致性,并提供了二级目录代理和调试指南,帮助开发者高效解决这一常见技术难题。

weixin_29201313的博客 320

重学《c++ primer》(1)

康神建议之重学《c++ primer》(1) 由于觉得自己提高速度太慢,昨天和康神聊天倒是点醒了我,以前总是这边啃一点那边啃一点,很多东西都是会但是并不精通,由于工作一直用的c语言,c++倒是给放下了,现在捡起来,从《c++ primer》开始吧!自己是个初学者如有bug请大神指出,将不胜感激。 ---------------------------------------------

白鱼儿的博客 343

用 SE84 反查 SAP 消息号:弹窗一闪而过也能抓到 Message ID 和 Number 的小技巧

SAP开发技巧:通过消息文本反查Message ID和编号 在SAP开发中,经常遇到系统只显示错误消息文本而缺少技术信息的情况。本文介绍两种实用方法: 使用SE84工具:通过输入带通配符的短文本(如"错误文本")反向查找消息类和编号 直接查询T100表:利用消息文本在T100表中检索完整的消息技术信息 这些技巧特别适用于处理弹窗消息、框架层错误等无法直接获取技术细节的场景。掌握消息ID和编号后,开发者可以更高效地进行问题定位、代码调试和错误处理,尤其在SAP Gateway、RAP等现代

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 370

异构图中的注意力机制网络:节点级别和语义级别的注意力(Python实现)

在本文中,我们介绍了如何使用Python实现异构图中的节点级别注意力和语义级别注意力。通过语义级别注意力,我们可以根据节点的语义信息对节点进行加权聚合。在本文中,我们将介绍如何使用Python实现异构图中的注意力机制网络,包括节点级别的注意力和语义级别的注意力。最后,我们使用注意力权重对节点特征进行加权聚合,得到聚合后的节点表示。然后,将聚合后的节点表示传递给语义级别注意力模型,根据节点的语义信息进行加权聚合,得到最终的表示。函数中,首先使用节点级别注意力模型对节点特征进行聚合,得到聚合后的节点表示。

HackNebulaZ的博客 485

重学C++Primer笔记9---回调函数与函数指针的应用

1 函数指针—指向函数的指针  函数指针是指向函数而非对象的指针。像其他指针一样,函数指针也指向某个特定的类型,函数类型由其返回类型以及形参表确定,而与函数名无关。例如:bool (*pf)(const string &,const string &);   将pf声明为指向函数的指针,带有两个const string&类型的形参和bool类型的返回值。 注意: *pf两侧的圆括号是必须的。 2

易名 2310

RK3588开发笔记-USB3.0接口调试

RK3588平台是一款强大的处理器,但要充分发挥其性能,需要正确调试其各种接口,包括USB 3.0接口。USB 3.0接口提供了更快的数据传输速度,但也可能面临一些问题。本篇博客将介绍如何在RK3588平台上调试USB 3.0接口,以确保其稳定性和性能。RK3588芯片具有强大的USB资源,包括多个USB接口和高速数据传输能力。RK3588通常具有多个USB接口,包括USB 2.0和USB 3.0。USB 2.0用于低速和全速设备连接,而USB 3.0则用于高速设备连接。

flypig has a dream! 2560

重学C++Primer笔记2---输入/输出 操作符 左操作数 右操作数 深入理解

IO对象:通过标准库定义的4个IO对象,来实现与输入输出设备(键盘、显示器等)的交互。 标准输入对象:cin 标准输出对象:cout 标准错误对象:cerr,无缓冲输出 标准错误对象:clog,有缓冲输出 特殊操纵符:endlendl。通过将特殊操作符endl写入输出流时,具有输出换行的效果,并刷新与设备相关联的缓冲区(buffer)。通过刷新缓冲区,用户可以立即看到写入到流中的输出。注意在程序调试

易名 2335

把财务与管理会计装进一张表:读懂 S/4HANA 的 ACDOCA

别慌,这反而是设计所需。只是大量历史上为汇总、加速而建的索引与汇总表被淘汰或改造,很多被兼容视图 compatibility views 替代,通过视图去 ACDOCA 或 ACDOCT 取数,从而保证老代码还能 SELECT 到数据,但失去写权限。它把原来分散在多张表里的信息整合到一起,例如总账、固定资产、物料账、盈利能力分析 CO-PA、成本控制等维度,发布过的资料多次强调这一点。其二,查询必须带上高选择性的条件,尤其是 RLDNR、RBUKRS、GJAHR 这三个维度,能大幅降低列存扫描的代价。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 942

代谢组数据分析(一):生成代谢组数据SummarizedExperiment对象

本文介绍了基于Zeybel 2022年发布的多组学数据集的分析脚本,该数据集包含微生物组、宿主人体学指标、临床学指标、血浆代谢组和免疫因子等多维度数据,涵盖56位患者的横截面数据和22位患者的纵向时间序列数据。脚本旨在生成适用于下游分析的数据对象,主要包括phyloseq和SummarizedExperiment两类。phyloseq对象用于整合微生物群落数据,支持多数据整合、可视化、丰富分析功能和便捷的数据处理;SummarizedExperiment对象则广泛应用于基因组学和转录组学研究,便于数据整合、

专注生信领域 2987

派生类可以访问基类的private成员吗

1.从派生类的使用者来讲, 所有的基类方法和成员都是private的,不可访问 2.从派生类内部来讲, 除了基类的private的方法和成员,其他的都可访问

crazyhacking的专栏 7342

Win11 系统下 VisualStudio2022 配置点云库 PCL1.11.1

安装完成之后打开文件夹E:\PCL 1.11.1\3rdParty\OpenNI2双击 并选择路径 (E:\PCL 1.11.1\3rdParty\OpenNI2) 安装即可全部安装完成之后,将pcl-1.11.1-pdb-msvc2019-win64.zip解压后的 .pdb文件拷贝到(E:\PCL 1.11.1\bin)中设置环境变量:到此,环境变量配置完成。

qq_53545309的博客 1125

c++:strcat潜在的错误不报告

#include #include using namespace std; int main() { char a[]="hello"; char b[]="world"; cout strcat(a,b); cout cout } 运行结果: 5 helloworld 10 这个小程序中数组a的大小被改变了,但是可以正常运行。潜在的错误影响呢

crazyhacking的专栏 1704

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

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

《accelerated c++》---------第六章

本章主要讲了算法部分。就是里面的算法。

crazyhacking的专栏 958

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

函数指针

摘要: 函数指针作用一般有二:1 调用函数  2 作为参数。 需要注意的是typedef这种是定义了 一种函数指针的类型(特定的参数类型和返回值) 代码示例如下, int func1(int x){ return x; } int func2(int x){     cout     return 2; } //函数名做参数,隐式的使用函数指针  int f(int

crazyhacking的专栏 914

<c++ primer>--第五部分 高级主题

一  多重继承与虚继承 1多重继承 派生类的对象包含每个基类的基类子对象。 派生类构造函数的次序按照基类构造函数在派生类类表中的出现顺序。 析构函数的次序是构造函数的逆序。 多个基类可能导致二义性。(含有相同的成员) 解决方法:1指定某个基类。2在派生类中定义这样一个成员。 2虚继承(virtual) 为了避免多次包含同一基类,定义虚继承。 类通过虚继承之处它希望共享其虚基类的状

crazyhacking的专栏 913

《accelerated c++》第九章---设计类

本章简单介绍了类的设计,但是包含了一些好的shejiyuanz

crazyhacking的专栏 902

《面向对象编程》--c++ primer 第15章

一(数据抽象)继承和动态绑定是面向对象编程最重要的两个行为。 只有public和protected成员才能被继承。 (1)protected成员使用规则 1 像proivate成员一样,protected成员不能被类的用户访问(基类可以访问,基类对象不能访问protected成员)。 2 像public成员一样,protected成员可以被类的派生类访问(派生类可以访问protected成

crazyhacking的专栏 838

抛出异常

抛出异常可以给人家提示出信息,人家可以知道哪错了. 是主动的防范。 是这样的吗?

crazyhacking的专栏 832

第十章-关联容器----重学C++之《 C++ PRIMER》

1综述 关联容器通过键存储和读取元素,而顺序容器通过元素在容器中的位置顺序存储和访问元素。 关联容器大部分行为与顺序容器相同,但是其独特之处在于支持键的使用。 关联容器类型:map(关联数组,元素通过键来读取),set(只有键),multimap(一个键对应多个值),multiset 容器元素根据键的次序排列。例如 map n 那么键值对("abc","abc") 在("abd","ab

crazyhacking的专栏 810

模版与泛型编程--<c++ primer>16章

一 基本定义  模版包括模版类和模版函数。 定义格式为;template class和template没有区别。 inline模版函数:template inline T min(const T&,const T&); 模版形参包括类型模版形参和非类型模版形参。 例如,类型模版形参T,非类型模版形参N template void arrayinit(T (&sparm)[N])

crazyhacking的专栏 711

第九章-顺序容器----重学C++之《 C++ PRIMER》

本章讲解了顺序容器以及他们通用的接口操作。 涉及的容器有:顺序容器vector,list,deque,并提及了stack,queue,priority_queue这三种容器适配器。最常用的容器是vector,支持对元素的快速访问。 主要内容: 1 容器的定义和初始化 2 迭代器的操作。迭代器的元素范围是左闭合区间,即[  )。 3 顺序容器的操作。 插入和删除。 比较. 设置容器大

crazyhacking的专栏 653

深挖C++:类和对象(中)

(先进后出)

xys_678的博客 182

选型笔记:Type‑C 扩展坞方案评估|DP1.4 转 HDMI2.0 桥接芯片 GSV2201S@ACP

本文记录 GSV2201S 这款 DP1.4a 转 HDMI2.0 桥接芯片评估,梳理视频、HDCP、PD 集成能力,总结 Type‑C 转接 Dongle、扩展坞方案的适配边界,以及差分走线、PD 时序、HDCP 握手等高频调试问题,为 C 口视频转接方案选型提供参考。

ACP广源盛的博客 217

C++移动构造函数详解

移动构造函数是C++11引入的一种特殊构造函数,用于从临时对象(右值)"窃取"资源来初始化新对象,而不是进行昂贵的深拷贝。char* data;public:// 移动构造函数:参数是右值引用 &&// 关键:把源对象的资源置空。

拒绝AI文,努力在AI时代写出感动人心的好文章 385
上一篇: LINUX终端下windows盘的位置
下一篇: 算法题--推箱子
crazyhacking
博客等级 码龄15年 299粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值