博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
神奇的c++等号重载
阅读量:2134 次
发布时间:2019-04-30

本文共 765 字,大约阅读时间需要 2 分钟。

今天看Effective C++ 说道等号重载的事,心里一直有疑惑,这些运算符重载都是怎么实现的。在学C++的时候只是草草的看过这部分内容,没有真正自己使用过,对于等号如何操作私有成员一直有疑问,今天试了一下,哎,还真对得起咱这张脸。。。

#include 
class A{public: A(void) : mVal(0) { } A(int v) : mVal(v) { } A(const A &obj) { mVal = obj.mVal; } ~A(void){} A& operator = (const A& R) { mVal = R.mVal; return *this; } void equal(const A &R) { mVal = R.mVal; } void set(int v) { mVal = v; } int get(void) { return mVal; }private: int mVal;};int main(void){ std::cout<<"Hello assign operator"<

 

原来等号可以直接操作私有成员大笑

事实上,复制构造函数也可以操作私有成员。。。。。

 

我弱爆了。。。尴尬

 

事实上,只要参数类型是自身的类型,就可以操作私有成员。。

 

下面是程序的输出

Hello assign operator

The value of obj1 is 1
The value of obj2 is 2
Do assignment
The value of obj2 is 1
Test copy constructor
The value of obj3 is 1
Test equal method
The value of obj4 is 1

 

 

你可能感兴趣的文章
为什么要用交叉验证
查看>>
用学习曲线 learning curve 来判别过拟合问题
查看>>
用验证曲线 validation curve 选择超参数
查看>>
用 Grid Search 对 SVM 进行调参
查看>>
用 Pipeline 将训练集参数重复应用到测试集
查看>>
PCA 的数学原理和可视化效果
查看>>
机器学习中常用评估指标汇总
查看>>
什么是 ROC AUC
查看>>
Bagging 简述
查看>>
详解 Stacking 的 python 实现
查看>>
简述极大似然估计
查看>>
用线性判别分析 LDA 降维
查看>>
用 Doc2Vec 得到文档/段落/句子的向量表达
查看>>
使聊天机器人具有个性
查看>>
使聊天机器人的对话更有营养
查看>>
一个 tflearn 情感分析小例子
查看>>
attention 机制入门
查看>>
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
双向 LSTM
查看>>
GAN 的 keras 实现
查看>>