关于c++浅复制的问题,求指教

问题描述

关于c++浅复制的问题,求指教

class A{
private:
char name[10];
public:
A(char name[])
{
strcpy(this->name,name);
}
void set(char name[])
{
strcpy(this->name,name);
}
void display()
{
cout<<name<<endl;
}
};
void main(){
A a("a");
A b=a;
a.set("b");
b.display();
a.display();
}
这个b对象属于直接浅复制对象a的,书上说这是现在两个对象指向同一内存地址,为什么我再次修改了a对象的数据成员b的数据成员没有改变呢?

解决方案

指向的不是同一个地址,如果用指针就是同一个地址了!
你看的什么书啊,太不靠谱了!

解决方案二:

class A{
private:
char *name; //char name[10];
用的时候,记得分配内存

解决方案三:

A a("a");
A* b=&a;
a.set("b");
b->display();
a.display();

这样写就一致了

解决方案四:

在VS IDE中调试时按Alt+8单步类的实例“构造”或“复制”或“作为函数参数”或“作为函数返回值返回”或“参加各种运算”或“退出作用域”的语句对应的汇编代码几步后,就会来到该类的“构造函数”或“复制构造函数”或“运算符重载”或“析构函数”对应的C/C++源代码处。

时间: 2024-11-10 07:39:03

关于c++浅复制的问题,求指教的相关文章

接口-我想制作一个电子阅读器用stm32f103rct6,求住制作流程,网上有一个,不是很懂求指教

问题描述 我想制作一个电子阅读器用stm32f103rct6,求住制作流程,网上有一个,不是很懂求指教 这是我从网上down的方法,有点不懂,关键就是编程还有MF RC522模块设计,求大虾指教,谢谢 1 硬件设计 1.1 硬件结构设计 RFID阅读器基于STM32单片机设计,芯片型号选择为STM32F103RBT6.该芯片为LQFP64封装, 内部有128 KB Flash和20 KB RAM,采用32位的ARM CortexTM-M3内核, 最高支持主频72 MHz,拥有2个SPI接口. 2

java 网站发布 域名-如何发布网站?求指教,感激不尽!

问题描述 如何发布网站?求指教,感激不尽! 自己用java写了个网站,想要放到网上去,应该要怎样做?有没有这方面有经验的人士帮忙解答一下?谢谢. 解决方案 1.买域名2.买空间我就知道这么多..只能帮你到这了 解决方案二: 可以用公有云计算平台,像是新浪SAE,费用不贵,用起来简单,是Java的话直接打war包上传上去就好了. 解决方案三: 可以用自已电脑配合花生壳搭建一台服务器(网上例子有很大). 还有就是花费去购买空间,也有一些免费的,不过得自已去找了! 解决方案四: 想自己控制自己的项目,

sql-T-SQL修改字段属性,求指教,急!!

问题描述 T-SQL修改字段属性,求指教,急!! 表已经建好,存在很多外键关系,删除不方便,由于逻辑问题,必须将表中的 PI_ClassInfoCI_StartTime_Date DATETIME NOT NULLCI_EndTime_Date DATETIME NOT NULL 改为 CI_StartTime_VarC VARCHAR(16) NOT NULLCI_EndTime__VarC VARCHAR(16) NOT NULL 求语句 解决方案 在Management Studio中,右

音频-我用java写了一个小游戏,想插入背景音乐但不太会,求指教

问题描述 我用java写了一个小游戏,想插入背景音乐但不太会,求指教 package text; import java.io.*; import javax.sound.sampled.*; public class text { public static void main(String[] args) { // TODO Auto-generated method stub //创建一个实例 AePlayWave apw = new AePlayWave("G:\照片\Sleep Awa

c-顺序表的 问题 求指教!

问题描述 顺序表的 问题 求指教! #include #include #include //#include"eg2_3.h" #define MAXSIZE 100 //顺序表的最大长度 typedef struct{ char* stuNo; char* stuName; char* stuSex; int mathScore; int chinScoee; }DataType; //顺序表中数据元素的类型DataType,这里假设为int //顺序表的类型 typedef st

java基础问题求指教谢谢

问题描述 java基础问题求指教谢谢 形如 A a=new A();-------------1 a=new A();--------------2 辣么,a到底指的是哪个对象?1还是2? 五楼的说法对么? 解决方案 只用new关键字是为了创建一个对象,你使用了两次new关键字进行创建,会在内存中创建两个A的对象,a是你声明的一个引用,在程序中以最后一次的指向为准,这里是指向最后一个. 解决方案二: new 最后一个对象时,内存又为它分配了新的地址,所以a只想最后一个 解决方案三: a 在最后被

耦合-求指教,关于JAVA接口,这样理解对不对?

问题描述 求指教,关于JAVA接口,这样理解对不对? 把接口看作是电脑上的USB接口,USB接口里有一种方法定义了一种规范,外部的usb设备比如usb鼠标,usb风扇在这个规范下具体实现了鼠标和扇风的功能,这样,人类可以使用usb这一种东西来调用usb接口外部的不同功能,需要改动的时候,只需要把能够实现所需要的功能的usb设备的线接到usb接口上就行了,而不用去做大量改动. 这么理解有什么偏差吗?求指教 解决方案 你可以有不同的理解,这没有任何问题. 当然,我觉得更接近编程思维的理解是,接口是一

android 浅复制和深复制-clone篇

有关java中的 浅复制和深复制 ,这里不详细讨论.相关知识请参考以下帖子: 浅复制和深复制http://blog.csdn.net/yang_hui1986527/article/details/7029777 浅析Java中的深拷贝与浅拷贝http://blog.csdn.net/yang_hui1986527/article/details/7012428 android中的 浅复制和深复制,具体可能于java中的有一点不同.下面,我们来探讨下在这个问题. 主要思路: 1.创建TextBo

C++课程设计老师说我没有用到类 求指教这段代码要怎么修改加上类

问题描述 C++课程设计老师说我没有用到类 求指教这段代码要怎么修改加上类 #include #include #include using namespace std; const double pi = 3.14159265; const double e = 2.718281828459; const int SIZE = 1000; typedef struct node//为了处理符号而建立的链表(如: 1+(-2)) { char data; node *next; }node; t