拷贝函数访问本类的私有变量的问题

2023-11-05

chap_5.h

——————————————————————————————————————————————————————————

#ifndef CHAP_5_H
#define CHAP_5_H
#include "string"
#include "iostream"
using namespace std;
class B
{
public:
 B(int a,int b);
private:
 int b1,b2;
};
B::B(int a,int b):b1(a),b2(b){}


class A
{
public:
 A(int a,int b);
 A(const A&);
 void Test(const B &);
 void Test(const A &);
private:
 int x,y;
 char *pbuffer;
};
A::A(int a,int b)
{
 x=a;
 y=b;
 pbuffer=new char[10];
 strcpy(pbuffer,"012345678");
}
A::A(const A & t)//这属于深度拷贝,因为将t所拥有的资源拷贝了一份给this对象
{

 x=t.x;
 y=t.y;
 pbuffer=new char[10];
 memcpy(this->pbuffer,t.pbuffer,10);//我们看到此时用的t.pbuffer是可以访问的,这主要原因在于private是针对类的不是限制对象的,如果在类内的成员函数不能知道类的结构那么定义类也就没有什么意义,但是如果在类外使用a2.pbuffer这就是不允许的
 //但是如果是其他类的成员如B,这样就是不可以的,因为Private限定了不同类之间的关系
 cout<<"调用拷贝构造函数/n"<<pbuffer<<endl;
}
void A::Test(const B &b)
{
 //cout<<"test!!!!!!!!"<<b.b1<<endl;//是不可以访问的,可以让B类提供接口
}
void A::Test(const A &a)
{
 cout<<"test!!!!!!!!"<<a.pbuffer<<endl;//我们可以看出,作为类的成员函数是可以访问同类型的私有变量的。
}
#endif

___________________________________________________________________________________________

// chap_5.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "chap_5.h"

int _tmain(int argc, _TCHAR* argv[])
{
 A a1(1,2);
 A a2=a1;
 B b1(1,2);
 a2.Test(b1);
 a2.Test(a1);
 int i;
 cin>>i;
 return 0;

 

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

拷贝函数访问本类的私有变量的问题 的相关文章

  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • 在 String.Format 中插入格式化字符?

    我用谷歌搜索了这个 但 VB Net 2008 似乎不允许在 String Format 中插入格式化字符 例如 t r n BAD MessageBox Show String Format 0 tab 1 Foo Bar BAD Mes
  • 使用通配符分割字符串

    我有一个变量字符串 其中包含我需要的值和拆分器 问题是 字符串的长度是可变的 分割器的类型也是可变的 它们通过 XML 文件到达 字符串将如下所示 1 20 51 2 name jpg 但也可以是 1 20 51 name jpg 坚实的因
  • Swift 仅删除字符串中的尾随空格

    SO 中的许多示例都固定两侧 即前导和尾随 我的要求只是关于尾随 我的输入文本是 保持我的左侧 期望的输出 保持我的左侧 当然 这个命令会删除两端 let cleansed messageText trimmingCharacters in
  • Java中使用正则表达式确定字符串是否为URL [重复]

    这个问题在这里已经有答案了 可能的重复 检查字符串是否为有效 URL 的最佳正则表达式是什么 https stackoverflow com questions 161738 what is the best regular express
  • 异常行为

    我是 C 的新手 小代码示例如下 int main int argc char argv char ch1 int int1 cin gt gt ch1 cin gt gt int1 cout lt lt ch1 lt lt n cout
  • CKEditor 类被剥离

    我有一个自定义插件 它添加了一个带有附加类的链接 当我使用 源 按钮查看此内容时 它会显示该类并且看起来应有的样子 但是 当我返回 WYSYWIG 视图并再次查看源代码时 该类已被删除 知道如何阻止这种情况发生吗 在此先感谢您的帮助 Che
  • 解析分隔字符串

    我怎样才能得到 connect 100 username example 从这个字符串 ngg connect gt 100 username gt example Using std string find有参数 and gt and s
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • 如何在读取文件期间从每一行中删除换行符? [复制]

    这个问题在这里已经有答案了 我正在从包含一个 字 行的文件中读取行 例如 dog cat person tree 每个单词还包含一个换行符 n特点 我想将它们读入列表并丢弃换行符 我设计的方法是阅读readlines 然后将列表处理为str
  • R 中的字符串作为函数参数

    数据框chocolates列出了糖果的类型以及每种糖果的一组评级 ID sweetness filling crash snickers 0 67 0 55 0 40 milky way 0 81 0 53 0 56 我正在编写一个函数 它
  • 删除某个类之后的所有类

    我有一个 lt div id thisdiv class class1 class2 class3 class4 class5 gt text lt div gt 我需要能够使用 jQuery 删除 class3 之后的所有类 就像是 th
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • 在 PHP 中使用 Curl 将获取字段附加到 URL

    我可以使用 Curl 执行服务器端和客户端重定向 但无法通过 get 请求将 GET 字段附加到 URL 这是我的代码 post curl init curl setopt post CURLOPT URL url curl setopt
  • SQL Server:应用正则表达式替换

    这是我的 SQL 查询 select codi nivell from anc documents 示例数据是 06080100000000 06080100000000 06080100000000 06080100000000 0608
  • 工厂模式:typedef Class *(createClassFunction)(void)

    什么是typedef Class createClassFunction void 或者另一种变化是typedef Class stdcall CreateClassFunction void 代表 这是什么意思 我该怎么解释呢 特别是在工
  • 用于在子字符串中用破折号替换空格的正则表达式。

    我一直在努力寻找一种方法 可以用字符串中的破折号替换空格 但只能替换字符串特定部分内的空格 Source ABC This is a sub string DEF 我对正则表达式的尝试 s g 如果我使用正则表达式来匹配空格并替换 我会得到
  • Google App Engine数据存储区字符串编码问题

    你好 我正在使用 Google App Engine 进行一个项目 并且需要存储一些字符串 我正在使用 Java 和JDOHelper getPersistenceManagerFactory transactions optional 在
  • Flutter/Dart:将十六进制颜色字符串转换为颜色?

    我们的数据库将颜色保存为String就像 AABBCC 所以我基本上正在寻找这样的函数 Color parseColor AABBCC 对于颤振 Color 类需要这样的东西Color 0xFF42A5F5 所以我需要转换 AABBCC t
  • issubclass() 对从不同路径导入的同一类返回 False

    目的是实现某种插件框架 其中插件是同一基类 即 A 的子类 即 B 基类使用标准导入加载 而子类使用 imp load module 从众所周知的包 即 pkg 的路径加载 pkg init py mod1 py class A mod2

随机推荐

  • Java——(1)定义一个学生类Student,包含属性:姓名(String name)、年龄(int age) (2)定义Map集合,用Student对象作为key

    分析以下需求 并用代码实现 1 定义一个学生类Student 包含属性 姓名 String name 年龄 int age 2 定义Map集合 用Student对象作为key 用字符串 此表示表示学生的住址 作为value 3 利用四种方式
  • db2异常

    一 db2 SQL0180N The syntax of the string representation of a datetime value is incorrect SQLSTATE 2200 问题描述 在用import导入时没有
  • qt入门级使用

    qt的安装 可参考 QT下载安装及配置教程 亲测好用 qt基本使用 1 创建第一个qt程序 打开后欢迎界面如下 这是关于qt的一些项目的讲解 不过视频地址在国外 需要翻qiang才能看 而且全是英文 左边还有一个 示例 那里面有各种项目的模
  • Android开发之RecyclerView的使用全解

    转自 http blog csdn net dmk877 article details 50816933 自Android 5 0之后 谷歌公司推出了RecylerView控件 RecylerView 我想看到一个新名词后大部分人会首先发
  • 微分动态规划

    from https en wikipedia org wiki Differential dynamic programming 深入理解DDP DDP是一种轨迹优化类别问题中的最优控制算法 这种算法在1966年被Mayne提出 该算法使
  • PostgreSQL 性能优化

    提出问题 PostgreSQL数据库如何进行简单的性能调优 解决问题 前言 PostgreSQL的配置参数作为性能调优的一部分 起着重要的位置 有时候一个简单的配置参数就会决定应用的性能 因此有必要简单了解下其相关的配置参数 查询Linux
  • Hadoop(三)读写流程

    Remote Procedure Call RPC 远程过程调用协议 它是一种通过网络从远程计算机程序上请求服务 而不需要了解底层网络技术的协议 RPC协议假定某些传输协议的存在 如TCP或UDP 为通信程序之间携带信息数据 在OSI网络通
  • 数据库基础命令

    SELECT 从数据库中提取数据 SELECT column name column name FROM table name SELECT DISTINCT column name column name FROM table name
  • Numpy

    文章目录 1 Numpy是什么 2 ndarray 2 1 什么是ndarray 2 2 ndarray的属性 2 3 ndarray的类型 3 Numpy基本操作 3 1 生成0或1的数组 3 2 从现有数组生成数组 拓展 浅拷贝和深拷贝
  • 在Excel中如何引用其他的工作表或者工作簿

    http www office68 com excel 426 html 公式中对单元格和单元格区域的引用不必非得针对同一个工作表中的单元格和单元格区域 如果要引用另外的工作表中的单元格 那么就在单元格引用的前面加上工作表的名称以及一个感叹
  • ssl协议及开源实现openssl

    转载地址 https blog csdn net jinbusi blog article details 76039206 locationNum 4 fps 1 ssl协议 SSL Secure Socket Layer 安全套接层 s
  • Rsync的核心算法

    一 什么是Rsync 1 rsync 是 unix linux 下同步文件的一个高效算法 它能同步更新两处计算机的文件和目录 并适当的利用查找文件中的不同块以减少数据传输 2 rsync中一项与其他大部分类似程序或协定中所未见的重要特性是镜
  • Delphi 对象的创建(create)与释放(free/destory)

    create后一定要free吗 简单举例 procedure a var x TX begin x TX create do someting x free 如果我这里不free 到了这个end不就是相当于C中的 自动释放吗 也就是说在此处
  • Android 基础知识4-3.10 ScrollView(滚动条)详解

    一 简介 首先来看google官方对他的介绍 翻译过来就是可以滚动的用户布局容器 如果手机显示不下子布局 那么可以使用scrollView 当然谷歌也说NestedscrollView已经提供了更好的用户体验 这个我们以后再详细总结下 谷歌
  • 批量处理sql表

    1 批量CRUD表字段 DECLARE V SQL VARCHAR2 2000 V TABLE NAME VARCHAR2 30 CURSOR C1 IS 查询当前用户下 ZFPT40 STATISTIC ANALYSIS 的所有表 SEL
  • 数据结构:循环链表的使用

    循环链表 循环链表 将单链表中终端结点的指针端由空指针改为指向头结点 就使整个单链表形成一个环 这种头尾相接的单链表称为单循环链表 简称循环链表 如图所示 非空的循环链表如图 循环链表与单链表的主要差异在于循环的判断上 原来是判断p gt
  • c语言的结构体是面向对象吗,基于面向对象的思想来使用结构体,将会有意想不到的效果...

    程序开发过程中 很多人都会接触到客户服务端模型 通常客户服务端模型是基于socket的网络通信 而网络通信是需要定义通信协议 通信协议结构一般是用结构体的方式来表示 而数据内容有的可能会使用json格式 对于嵌入式设备 数据内容更多的还是采
  • mysql8.0.19.0是不是免费的_mysql8.0.19 免安装版本的相关配置

    1 下载好对应的数据库版本 网址 https dev mysql com downloads mysql 2 下载解压到一个目录 例如 D zyf mysql8 说一下遇到的一个问题 当我设置成D zyf soft mysql8的时候遇到一
  • 重写介绍。

    1 方法重写的作用和使用 方法重写子类继承了父类的方法后 如果发现在需求下 父类的某些方法不太强大 我们就可以在子类中进行重写 宠物自白 Override 注解不报错 说明你写的就是方法重写 规范 必须要加 public void show
  • 拷贝函数访问本类的私有变量的问题

    chap 5 h ifndef CHAP 5 H define CHAP 5 H include string include iostream using namespace std class B public B int a int