成员操作符剖析

成分数据的闭合效应对地球化学数据的影响及其解决方案 封闭效应 (Closure Effect),也称为常数和效应 (Constant Sum Effect),是地球化学数据分析中一个需要特别注意的统计现象。它的产生是由于我们通常使用成分数据 (Compositional Data)百分比 (%)百万分率 (ppm)由于这些数据表示的是各组分占总体的比例,它们的总和必然是一个常数 (例如 100% 或 1,000,000 ppm)。这意味着每个元素的含量不是独立的,而是与其他元素的含量相互制约。改变其中一个元素的含量必然会影响其他元素的相对比例。 阅读详情

前面的操作符都比较一般,但是这里的调用就有点小不同了,如下设计的类(与智能指针类似)

class ScrPtr
{
public:
	friend class ScreenPtr;
	friend class ScrPtrTest; //这个先不用管,后面我会用到
	ScrPtr(screen* p):sp(p),count(1) { };
	~ScrPtr() { /*delete sp;*/ };

private:
	size_t count;
	screen *sp;
};
这里又使用了智能指针,指针指向的就是screen类对象,其他与智能指针一致,调用指针的类,如下

class ScreenPtr
{
public:
	friend class ScrPtrTest; //这个也不用管
	ScreenPtr(void);
	~ScreenPtr(void);

	ScreenPtr(screen *p);
	ScreenPtr(const ScreenPtr&);
	ScreenPtr& operator=(const ScreenPtr &);

	screen* operator->() { return ptr->sp; };  //箭头操作符
	screen& operator*() { return *ptr->sp; };  //解引用操作符

	const screen* operator->() const { return ptr->sp; }; //const版本的箭头操作符
	const screen& operator*() const { return *ptr->sp; }; //const版本的解引用操作符

private:
	ScrPtr* ptr;
};
这里我定义了箭头操作符->和解引用操作符*,这里也定义了两个版本,当然定义也没什么,无非返回值,形参,指针如何传递值,关键如何使用呢?通常应该这样:obj.operator().xx肯定是正确的,这里我们定义了->,当然最好使用箭头了obj->,关键这个指向谁呢?或者说返回什么呢?其实就是定义的函数的screen*(这里不考虑const的调用),所以就可以直接调用screen内的成员了,因为obj->就是screen*类型的对象指针,所以就能调用可见的成员了。如下测试用例:

	string str = "windows_title";
	screen myscreen(str, 0, 5); //栈上分配的空间

	myscreen.display(cout);
	cout<<"-----#####-----" <<endl;

	ScreenPtr p(&myscreen);
	p->display(cout);
	p.operator->()->display(cout); //两种调用方式是一样的
总结几个注意的地方:

(1)箭头操作必须定义为类成员函数,解引用操作符不要求定义为成员

(2)不管如何调用。箭头操作符不接受显式形参

(3)重载箭头必须返回指向类类型的指针,或者返回定义了自己的箭头操作符的类类型对象

(4)如果返回类型是类类型的其他对象,则将递归应用该操作符

下面就看第四个设计下的一个类:

class ScrPtrTest
{
public:
	ScrPtrTest(screen *p): ptr(new ScreenPtr(p)) { };
	~ScrPtrTest() { if (--ptr->ptr->count ==0) delete ptr; }

	ScrPtrTest(const ScrPtrTest&);
	ScrPtrTest& operator=(const ScrPtrTest &);

	screen* operator->() { return ptr->ptr->sp; };  //箭头操作符
	const screen* operator->() const { return ptr->ptr->sp; }; //const版本的箭头操作符

private:
	ScreenPtr* ptr;
};
注意:这个类有些不完善,只是说明问题,但是根据C++Primer意思就是逐层递归,这样一类设计的类就如上,调用如下

	ScrPtrTest test(&myscreen);
	test->display(cout);
会跟上面的ScreenPtr对象的调用结果是一致的,但是这里破坏类的封装较大。

三菱FX5U-PLC建立CClink的IO通讯 最新需要用三菱的FX5U的PLC搭建一个CClink通讯,PLC做主站,控制CClink从站的IO,下面2个输入模块AJ65SBTB1-32D,两个输出模块AJ65SBTB1-32T。3、在右侧的部件,选择网络模块:FX5-CCL-MS,CC-link主站模块。依次把加入两个AJ65SBTB1-32D,两个AJ65SBTB1-32T。7、基本设置,网络配置设置,链路刷新设置,设置好下面参数,应用。6、基本设置,网络配置设置,CC-Link配置设置。8、部件选择,模块,右键,添加模块标签。 阅读详情

相关推荐

一文读懂无人机AI识别算法,原理、技术、应用

本文详细介绍了无人机识别算法的工作原理、技术优势以及在多个行业的应用前景,展现了其在提升安全监控、资源管理和应急响应中的关键作用。尽管无人机识别算法在多个领域展现出巨大潜力,但仍面临技术挑战,如算法的准确性、数据的实时处理能力以及对复杂环境的适应性。4. 消防与城市管理: 无人机识别算法在消防和城市管理中的应用,为相关部门提供了及时的信息支持,提升了应急处置能力和城市管理水平。1. 公安监控: 无人机识别算法在公安领域的应用,可以实时识别犯罪嫌疑人和违法行为,有效提升城市治安管理的智能化水平。

foiadrone的博客 1849

C语言-操作符详解

C语言操作符是说明特定操作的符号 ,它是构造C语言表达式的工具。C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为操作符处理。除了常见的三大类,算术操作符,关系操作符与逻辑操作符符之外,还有一些用于完成特殊任务的运算符,比如位算符。

怀秋秋意的博客 1078

A2B音频总线在智能座舱中的应用

车载A2B链路音频是智能座舱的核心功能,涵盖车载音响、语音识别、e-Call、消噪及回声消除等应用,随着汽车智能网联化的发展,对音频的开发要求也越来越高,需要加入更先进、功能丰富的信息娱乐功能以满足消费者的用户体验。但传统的模拟并行音频信号传输方式,难以在功能增加与整车轻量化(线缆的重量及成本减少)之间取得均衡。这时候就需要A2B音频总线了。A2B音频总线用于连接车辆中的音频设备,如麦克风(MIC)、功放(AMP)、多媒体主机(Head Unit)和T-BOX等。通过一条低成本的非屏蔽双绞线UTP,进行跨距

怿星科技的博客 3936

成员操作符

成员操作符适用于多种数据类型,包括字符串、序列、元祖以及字典等 1.字符串 对于字符串来说,成员操作符用于判断一个字符或者子串是否在另一个字符串中,在则返回True,否则返回False。 >>> 'bc' in 'abcd' True >>> 'bd' in 'abcd' False >>> 'dd'not in 'abcd'...

weixin_30278237的博客 775

合泰单片机HT32之keil5开发环境搭建(一)

1. 前言 这两天在准备合泰杯,但是总是感觉无从下手,因为合泰单片机的资料教程什么的非常少,不像stm32那样。而且听说要用合泰单片机的专用IDE,感觉当场被劝退了。后来经过查找资料,发现合泰单片机也有keil5的支持包,也就是说可以从库函数进行开发,不用从寄存器进行开发,但我找了好久,并没有找到教程,后来实在没办法,打算自己动手搭建环境,经过了大概两天的挣扎后,终于成功地搭建好了环境,也成功地点...

weixin_44713763的博客 8671

ANSYS2022R1——安装源文件下载和安装教程——软件管家

14.当提示输入安装目录:#3时,①点击【浏览】,②选安装包解压后的【ANSYS2022R1_WINX64_Disk2】文件夹中【ANSYS2022R1_WINX64_Disk3】文件夹,③点击【选择文件夹】,④点击【OK】。12.当提示输入安装目录:#2时:①点击【浏览】,②选安装包解压后的【ANSYS2022.R1(64bit)】文件夹中的【ANSYS2022R1_WINX64_Disk2】文件夹,③点击【选择文件夹】,④点击【OK】。】②点击【OK】③点击【OK】。

qq_15963745的博客 2330

3.Python字符串

字符串1.字符串的创建和赋值2.字符串的基本特性1.连接符与重复操作符2.序列操作符:3.成员操作符(in , not in) 1.字符串的创建和赋值 字符串或串是由数字、字母、下划线组成的一串字符。可以简单地通过在引号间(单双引号,三引号)包含字符的方式创建它。 str1 = ‘hello’ str2 = “hello” str3 = ‘’‘hello’’’ 一个反斜杠加一个单一字符可以表示一个特殊字符,通常是不可打印的字符。 转义字符 名称 功能 \a 响铃 输出响铃 \b 退格(B

weixin_53228623的博客 838

Windows配置L2TP/IPsec连接

Windows 系统的 L2TP/IPsec 功能,通过配置即可构建加密 VPN 通道。

m0_61806534的博客 1670

Python常用操作符

Python常用操作符 1.成员关系操作符innot inpython 成员关系操作符有in和not in,它们用来判断某个元素是否在某个容器里(字符串,集合,字典,列表,元组),如果在返回True,如果不在,返回False2.算数操作符符号 含义+ 加法- 减法* 乘法...

anlao7404的博客 265

数据资产可视化分析:PowerBI在大数据管理中的实战

目的:帮你搞懂“为什么数据资产需要可视化?”“PowerBI能帮企业解决什么问题?”,并掌握用PowerBI做大数据可视化的实战技巧。范围:覆盖数据资产定义、可视化分析原理、PowerBI核心功能(数据连接、建模、可视化)、零售企业实战案例,以及未来趋势与挑战。背景:为什么企业的数据像乱堆的玩具?核心概念:数据资产、可视化分析、PowerBI分别是什么?它们怎么配合?实战步骤:用PowerBI帮零售企业整理“销售玩具箱”,做出能指导决策的仪表盘;应用场景:不同部门怎么用这个“整理好的玩具箱”?

2501_92132293的博客 907

【Linux0.11代码分析】之 系列文章链接汇总(全)

【Linux0.11代码分析】00 之 系列文章链接汇总(全)

|~~~热爱生活、努力学习的小伙汁~~~| 1450

Python新手学习基础之运算符——成员运算与身份运算

成员运算符 Python里有成员运算符,可以判断一个元素是否在某一个序列中。比如可以判断一个字符是否属于这个字符串,可以判断某个对象是否在这个列表中等等。 Python中的成员操作符的使用语法是: obj [not] in sequence 这个操作符返回值是True或者False。 ...

chenjin19961001的博客 657

科研牛马千万不要错过!手把手教你用AI精准匹配真实参考文献,仅需一个专业应用+两个提示词指令

当然也可以借助生成式AI,如GPT-5.2、Gemini 3 Pro粘贴段落,输入设计好的提示词,让模型根据段落内容匹配参考文献,并正确引用到段落合适位置,再按规范格式输出参考文献列表。阅读我提供的【正文文本】,为其中的关键论点寻找真实的、权威的参考文献(优先来源于Nature, Science, IEEE, ACM, PubMed等),并插入引用。若在段落中已经引用好了参考文献,也有参考文献列表,担心引用位置不当或论点、论述逻辑与文献不够契合,则可以用以下结构化提示词,让AI辅助审查。

智能AI让学术科研更容易 1033

操作符详解

以上大致介绍了一些操作符,剩下的最后两个操作符 & 和 * 请期待下一篇,关于C语言的其余内容,请期待后续更新。以上内容如有错误或不准确之处,欢迎指出,或者你有更好的想法,也欢迎交流。

naobeng的博客 815

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C语言操作符【操作符详解】

这些也叫双目操作符--有两个操作数的操作符(操作符也叫运算符)必须格式:操作数1 运算符 操作数2,比如 3+5,10%3,缺一不可。猜猜看a为多少: 你可能会觉得 a 会等于 25 ,但是呢实际上 a 等于 0 。因为 a / 20 是整除,得到的是 0 ,小数部分被舍弃掉了,所以乘以 100 后结果也是 0 。为了得到想要的结果呢,可以将 20 改为 20.0,或是式子改为( (1.0 * a) / 20) * 100,让整数除法变成浮点数除法。涉及原码、反码、补码的知识,文章的最后有相关知识。移位

2501_94401706的博客 1001

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C语言操作符详解

本文系统介绍了C语言中的各类操作符及其应用。主要内容包括:1)操作符分类,涵盖算术、移位、位运算等11种类型;2)重点讲解了算术运算符的整数/浮点数除法差异、移位运算符的补码运算规则;3)详细解析了位操作符的实际应用,包括变量交换和统计二进制1个数的编程实现;4)说明了赋值、单目、关系等操作符的特性和注意事项;5)介绍了表达式求值中的隐式类型转换(整型提升)机制。文章通过具体代码示例演示了各操作符的用法,并指出复杂表达式可能导致的不可预期结果,建议编程时应保持代码简洁。

y3245239334的博客 1997

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

全部操作符的详解讲解

/代码1:变量的定义int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//代码2:初始化。struct Stu //类型声明//名字int age;//年龄//初始化//指定顺序初始化//代码3int data;//结构体嵌套初始化//结构体嵌套初始化。

2403_87368200的博客 366

C语言操作符详解

本文系统讲解了C语言操作符的分类、使用规则及表达式求值机制。主要内容包括:1)操作符的分类(算术、移位、位、赋值等11类);2)二进制相关概念(进制转换、原码/反码/补码);3)位操作符(& | ^ ~)和移位操作符(<< >>)的运算规则;4)结构体成员访问操作符(. ->)的使用;5)操作符优先级和结合性对表达式求值顺序的影响;6)整型提升和算术转换机制;7)问题表达式案例分析。通过具体代码示例,揭示了复杂表达式可能存在的计算路径不确定性问题。全文为深入理解C语言表达式运算

lingran__的博客 1346

C语言操作符

其实10进制的每⼀位是有权重的,10 进制的数字从右向左是个位、十位、百位....,分别每⼀位的权重是 10 ,10^2 ,10^3 ...C语言已经提供了内置类型,如:char、short、int、long、float、double等,但是只有这些内置类 型还是不够的,假设我想描述学生,描述⼀本书,这时单⼀的内置类型是不行的。有符号整数的三种表示方法均有符号位和数值位两部分,2进制序列中,最高位的1位是被当做符号 位,剩余的都是数值位。• 10进制的数字每⼀位都是0~9的数字组成 其实二进制也是⼀样的。

2501_92042392的博客 839

C语言【第六篇】 ——— 移位操作符、按位操作符、结构成员访问操作符和表达式求值规则

本文详细介绍了C语言中的移位操作符、按位操作符、结构成员访问操作符和表达式求值规则。主要内容包括: 移位操作符(<<和>>)的操作原理,强调操作对象是整型数据的补码二进制位,并解释了原码、反码、补码的概念及转换规则。 按位操作符(&、|、^)的运算规则,通过具体示例演示了每种操作符的计算过程。 结构成员访问操作符(.和->)的使用方法,说明了如何通过结构体变量或指针访问成员。 表达式求值过程中的隐式类型转换和算术转换规则,包括整型提升和数据截断现象。 文章通过代码示例详

weixin_55341642的博客 782

操作符从浅入深的讲解

例如∶。

qz_Serene的博客 676

第8讲:操作符详解

1.操作符的分类 2.⼆进制和进制转换 3.原码、反码、补码 4.移位操作符 5.位操作符:& 、| 、 ^ 、~ 6.单⽬操作符 7.逗号表达式 8.下标访问 [ ] 、函数调用 ( ) 9.结构成员访问操作符 10.操作符的属性:优先级、结合性 11.表达式求值

pluviophile_s的博客 1245

C语言之操作符详解

本文系统介绍了C语言中的各类操作符及其使用规则

chttt11111的博客 808

操作符的认识3(下标访问操作符[ ]、函数调用操作符、结构体访问操作符、操作符的属性、表达式求值)

结构体的格式为struct str_name//(该结构体的名字)//结构体成员int age;//可以在创建好结构体后直接创建int main()//也可以创建后再在其他位置创建s3 = {"zhangsan",16,95.5f}//这样初始化叫做顺序初始化//即按结构体成员的顺序依次赋值,成员之间用','相隔return 0;除了上面的初始化方法,还可以通过结构体访问操作符’ . '进行初始化。

lfr07的博客 790

剖析【C++】——类与对象(中)——小白篇—超详解

在C++中,即使一个类没有定义任何成员或成员函数,编译器仍会为其生成以下6个默认成员函数。

小李很执着的博客 1684
上一篇: 下标操作符
下一篇: 调用操作符和函数对象
comwise
博客等级 码龄15年 58粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值