关于对象的引用作为参数,可以直接访问私有成员的问题

2023-11-11

#include
using namespace std;
class CPoint
{
public:
	CPoint(int xx, int yy)
	{
		x = xx;
		y = yy;
	}
	CPoint(const CPoint &p)
	{
		x = p.x;
		y = p.y;
	}
private:
	int x, y;
};

       首先,我们来看一个例子,在CPoint这个类中定义了两个构造函数,第一个为普通的构造函数,第二个为拷贝构造函数,在拷贝构造函数中通过p.x来访问被引用的对象p的私有数据成员x和y,这个例子可能会让很多人有疑惑,你可能会想为什么拷贝构造函数的参数可以直接去访问它自己的私有成员?那这个例子到底是错的还是对的呢

 

       答案是对的,我们得明白C++的限定符是限定类的,不是限定对象的,只要是类型相同就能相互访问。两个是同类型的,因此可以直接访问,但是需要指定一下是哪个对象。所 谓访问权限(如public,private),是对“类”来说的,不是对“对象”来说的,private访问权限是其它类不能访问,而非这个类的不同对 象不能访问。

 

       结论,拷贝构造函数本来就是用来把两个相同类的对象赋值而已,那么被赋值的对象的类肯定和用来赋值的对象是一个类,所以在拷贝构造函数里面这样用,一点问题也没有!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于对象的引用作为参数,可以直接访问私有成员的问题 的相关文章

  • 【千律】C++基础:通过文件指针获取文件大小(字节数)

    include
  • C++之纯虚函数与抽象类

    C 之纯虚函数与抽象类 什么是纯虚函数 什么是抽象类 什么是纯虚函数 纯虚函数是将基类中的函数声明为虚函数 0的函数 纯虚函数只能声明 不能定义 因为纯虚函数没有函数体 纯虚函数的写法为 virtual 函数返回类型 函数名 参数列表 0
  • C++数组(数组定义方式、数组名作用、数组地址)

    文章目录 1 数组概述 2 一维数组 2 1 一维数组定义方式 2 2 一维数组数组名 2 2 1 一维数组名称的作用 2 2 2 一维数组名的2种特例情况 2 3 一维数组的地址 2 4 冒泡排序 3 二维数组 3 1 二维数组定义方式
  • c++职工管理系统

    要求 代码 management system cpp main函数 include
  • Cpp学习——模板

    模板 目录 模板 1 介绍 2 函数模板的使用 3 函数模板的强制转换or显式调用 四 模板的分类 1 介绍 在Cpp3 0中 祖师爷便引入了模板的概念 这是一个重大的变革 为后来的Cpp标准化打下了铺垫 也正是因为有了模板 Cpp才能有S
  • C++基础---递归函数

    1 递归函数 1 1 递归函数的定义 递归函数 即在函数体中出现调用自身的函数 即函数Func Type a 直接或间接调用函数本身 递归函数 在数学上 关于递归函数的定义如下 对于某一函数f x 其定义域是集合A 那么若对于A集合中的某一
  • STL容器之deque

    文章目录 deque容器简介 deque的操作 deque容器简介 deque是 double ended queue 的缩写 和vector一样都是STL的容器 deque是双端数组 而vector是单端的 deque在接口上和vecto
  • 同步和异步的区别

    同步 同指一个进程在执行某个请求的时候 若该请求需要一段时间才能返回信息 那么这个进程将会一直等待下去 直到收到返回信息才继续执行下去 异步 是指进程不需要一直等下去 而是继续执行下面的操作 不管其他进程的状态 当有消息返回时系统会通知进程
  • Cpp学习——string模拟实现

    目录 一 string的成员变量 二 string的各项功能函数 1 构造函数 2 析构函数 3 扩容函数 4 插入与删除数据的函数 5 运算符重载 6 打印显示函数 7 拷贝构造 8 find函数 一 string的成员变量 在模拟实现s
  • Cpp学习——string(2)

    目录 编辑 容器string中的一些函数 1 capacity 2 reserve 3 resize 4 push back 与append 5 find系列函数 容器string中的一些函数 1 capacity capacity是str
  • Open3D:Win10 + VS2017配置Open3D(C++、python)

    累了就要打游戏 2020 08 25 15 13 10 3350 收藏 25 分类专栏 Open3D 文章标签 点云 Open3D C 版权 Open3D 专栏收录该内容 5 篇文章1 订阅 订阅专栏 20200825 今天七夕 呱呱呱 O
  • 【千律】C++基础:多态性与虚函数

    虚函数 通过父类的指针 指向子类的对象 调用虚函数时 调用子类的函数 include
  • devC++强制关机代码shutdown(DAY 26)

    文章目录 1 代码实现 2 运行结果 恶搞同学 这种方式只用改个头文件 再在文章中间加一行输出即可 1 代码实现 2 运行结果 恶搞同学 增加编程乐趣 这种方式只用改个头文件 再在文章中间加一行输出即可
  • 【千律】C++基础:析构函数

    报错strcpy不安全 解决方法 项目 gt 属性 gt C C gt 预处理器 gt 预处理器定义 添加 CRT SECURE NO DEPRECATE CRT NONSTDC NO DEPRECATE include
  • LeetCode之最长公共子序列问题LCS解决方法

    Leetcode官网解答 使用动态规划原理 请参考原文地址 https leetcode cn com problems longest common subsequence solution zui chang gong gong zi
  • uthash

    在软件开发中 不可不免的会使用到hash表 hash表的优点这里就不说了 以下介绍一个hash表的C实现 uthash是用宏实现的 使用的时候非常方便 只用包含uthash h即可 Uthash的三个数据结构 1 typedef struc
  • C++杂谈 inline关键字

    1 inline 用于把函数指定为内联函数 且该关键字需要与函数定义放在一起 与函数声明放在一起没有效果 2 内联函数一般只适用于比较精简的小函数 实际上内联函数是通过牺牲空间去换取时间上的效率 如果函数过于庞大会造成大量空间的浪费 所以需
  • C++类和对象:补充拷贝构造

    前言 如果一个类中什么成员都没有 简称为空类 空类中什么都没有吗 并不是的 任何一个类在我们不写的情况下 都会自动生成下面6个默认成员函数 目录 一 六大函数 1 构造函数 1 定义 2 特性 3 赋值 4 初始化列表 2 拷贝构造函数 3
  • C++四种类型转化

    文章目录 static cast const cast reinterpret cast 重新解释 dynamic cast static cast 该运算符把expression转化为type name类型 static cast在编译时
  • 【千律】C++基础:通过递归函数计算N的阶乘

    include

随机推荐

  • vue动态添加路由清空路由

    刚做的项目分多个模块 点击后再查询菜单 动态加进路由 直接动态添加则爆出警告信息 路由重复 于是乎想到了先清空路由 resetRouter const newRouter new Router mode hash scrollBehavio
  • TortoiseGit清除账号密码

    开发十年 就只剩下这套Java开发体系了 gt gt gt 1 编辑系统配置 2 删除配置信息 3 删除 git credentials 一般在c盘的用户目录下
  • pytorch怎么加入环境变量_pytorch安装(使用pip3装到conda环境下)(示例代码)

    之前在windows上使用pip3的方式安装过pytorch 虽然偶尔也会HTTP Error 安装失败 但是基本还是可以安装成功的 上 这一次在ubuntu上装了anaconda 想着之后的库都用conda安装 而不使用ubuntu自带的
  • 序(为什么要抄unreal源码)

    unreal所有源码很长 几百万行 一辈子也抄不完 然而 ue4 0版本的runtime只有1887个文件 251043行 不算第三方库 可以只按照渲染相关部分抄写一下 然后 逐版本增补 只需要关注渲染部分 和工作中用到的插件 还是可以的
  • 深入剖析Kubernetes之控制器模式的实现-Job与CronJob

    文章目录 Job CronJob Deployment StatefulSet 以及 DaemonSet 这三个编排概念 它们主要编排的对象 都是 在线业务 即 Long Running Task 长作业 比如 常用的 Nginx Tomc
  • 深度学习常见术语及作用--个人笔记

    1 池化层 提取重要信息 去掉不重要信息 减少参数 减少计算开销 防止过拟合 2 全连接层 FC 在整个卷积神经网络起 分类器 的作用 3 激活函数 给神经元引入了非线性因素 进而提升网络的表达能力 4 backbone 主干 骨干 网络
  • 快速查找Unity死循环

    我们先建立一个新工程 新建C 文件 然后在Start函数中加入以下代码 void Start while true int i 1 把这个C 文件挂到场景摄像机或其它GameObject上 打开这个工程对应的VS工程 如何用VS编辑unit
  • Spring DataBinding

    1 用 ModelAttribute注释方法 1 1 ModelAttribute和 RequestMapping同时注释一个方法 span style font size 14px RequestMapping method Reques
  • 送书

    六月 初夏 高考结束 毕业季到来 准大学生纠结选什么专业 毕业生迈进就业大军 不论什么身份 大家都在思考着同一件事情 当下什么能力最热门 想要得到答案很简单 打开任意一款求职软件 热门岗位的职位简介中都少不了这一项 数据分析能力 4月20日
  • 笔记&代码

    1 1数据与统计学 统计学的含义 数据及其分类和来源 1 1 1 什么是统计学 收集数据 数据分析 描述统计 利用图表 计算简单统计量 推断统计 根据样本判断总体 参数估计和假设检验 1 1 2 变量与数据 变量 数据 变量的观测结果就是数
  • TCP详解之重传机制

    TCP详解之重传机制 TCP 实现可靠传输的方式之一 是通过序列号与确认应答 在 TCP 中 当发送端的数据到达接收主机时 接收端主机会返回一个确认应答消息 表示已收到消息 但在错综复杂的网络 并不一定能如上图那么顺利能正常的数据传输 万一
  • OpenGL ES 着色器(shader)介绍

    1 Shader Shader其实就是一段执行在GPU上的程序 此程序使用OpenGL ES SL语言来编写 它是一个描述顶点或像素特性的简单程序 在opengles中常用的shader有两种 vertex shader和fragment
  • 在styled-components的样式声明中做px到rem的自动转换

    原文地址 最近在尝试使用styled components来做React下的样式开发 这样可以利用js语言的灵活来增强css的能力 在用styled components处理px到rem的转换时 有点问题了 styled component
  • 嵌入式学习(四)——串口

    目录 一 通信的基本概念 1 1 同步通信和异步通信 1 2 电平信号和差分信号 1 3 并行接口和串行接口 1 4 单工通信和双工通信 二 串口通信 2 1 基本概念 2 2 起始位 数据位 奇偶校验位 停止位 2 3 RS232电平和T
  • 如何将二维数组作为函数的参数传递

    如何将二维数组作为函数的参数传递 今天写程序的时候要用到二维数组作参数传给一个函数 我发现将二维数组作参数进行传递还不是想象得那么简单里 但是最后我也解决了遇到的问题 所以这篇文章主要介绍如何处理二维数组当作参数传递的情况 希望大家不至于再
  • 如何加速实现数据透明度 驱动企业释放数据价值

    本文根据王锦超先生在 DQMIS 2020第四届数据质量管理国际峰会 现场演讲内容整理而成 图1 1 思迪博软件 Stibo Systems 中国区总经理 王锦超 演讲嘉宾介绍 王锦超 专注于服务企业信息化建设十余年 在主数据管理 数据治理
  • 贪心法田忌赛马问题Java代码,hdoj 1052 Tian Ji - The Horse Racing【田忌赛马】 【贪心】...

    hdoj 1052 Tian Ji The Horse Racing 田忌赛马 贪心 思路 先按从小到大排序 然后从最快的开始比 假设i j 是最慢的一端 flag1 flag2是最快的一端 田的最快的大于king的 则比较 如果等于然后判
  • linux 系统安装vscode 图文学习记录

    目录 1 下载 2 解压 3 移动到 usr local 目录 4 复制一个VScode图标文件到 usr share icons 目录 后面会有用 5 创建启动器 1 下载 到地址下载安装包 https code visualstudio
  • OpenGL programming with GLSL: Part I

    The standards of OpenGL GLSL are evolving constantly we enter to the era of programmable graphic pipeline at the same ti
  • 关于对象的引用作为参数,可以直接访问私有成员的问题

    include using namespace std class CPoint public CPoint int xx int yy x xx y yy CPoint const CPoint p x p x y p y private