位拷贝与值拷贝

airsong_wjs 2008-11-06 12:16:07
加精
什么是位拷贝和值拷贝?
一直没有找到很好的资料阿~
它们与深拷贝和浅拷贝有什么区别?
...全文
4556 128 打赏 收藏 转发到动态 举报
写回复
用AI写文章
128 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuphore 2012-08-21
  • 打赏
  • 举报
回复
学习了,MARK
airwolf1216 2012-07-24
  • 打赏
  • 举报
回复
用不着区分什么位拷贝值拷贝 什么深拷贝浅拷贝 什么传值传址 这些完全是程序员不懂指针而产生的意淫性术语
airwolf1216 2012-07-24
  • 打赏
  • 举报
回复
[Quote=引用 125 楼 的回复:]
引用 13 楼 的回复:
引用 4 楼 jackzhhuang 的回复:
浅拷贝和深拷贝多数是相对于指针、用户定义的类来说的:

浅拷贝就是:


C/C++ codechar* p = new char('C');
char * q = p;



深拷贝就是:


C/C++ codechar* p = new char('C');
char * q = new……
[/Quote]

看错了 没泄露内存 但也不是位拷贝值拷贝
airwolf1216 2012-07-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
引用 4 楼 jackzhhuang 的回复:
浅拷贝和深拷贝多数是相对于指针、用户定义的类来说的:

浅拷贝就是:


C/C++ codechar* p = new char('C');
char * q = p;



深拷贝就是:


C/C++ codechar* p = new char('C');
char * q = new char;
*q = *……
[/Quote]

胡说 这哪是值拷贝位拷贝 4楼的程序内存泄露

真正意义上 没有什么值拷贝位拷贝 所谓值拷贝位拷贝 完全是程序员的意淫而已

说白了 那玩意就是 是否两个指针指向了同一地址 导致释放内存时候产生了野指针
「已注销」 2011-12-03
  • 打赏
  • 举报
回复
mark下。学习。
位按地址,值就是按内容
pathuang68 2011-04-29
  • 打赏
  • 举报
回复
位拷贝 = bitwise copy = shallow clone = 浅拷贝
值拷贝 = memberwise copy = deep clone = 深拷贝
cxyOOOO 2011-04-29
  • 打赏
  • 举报
回复
长生贴呀。
jeromewen 2011-01-25
  • 打赏
  • 举报
回复
学习了
cmlr_ 2011-01-10
  • 打赏
  • 举报
回复
值拷贝即
p = q

位拷贝
memcpy(&p, &q, sizeof(q))

这是我的理解,看似没错?
  • 打赏
  • 举报
回复
[Quote=引用 67 楼 program2050 的回复:]
谁来解释一下it = *(int*)&ft; // 按位拷
[/Quote]

变换一下容易看明白:
int *p=(int*)&ft;
it=*p;
感觉也非按拉拷,因为最后有个*提取了引用,还是按值拷
mskmc_mc 2010-12-15
  • 打赏
  • 举报
回复
哦,原来就是对拷贝方法的一种称呼,搞的太深了
就是指针与指针的拷贝,指针指向的值与指针指向的值的拷贝··
  • 打赏
  • 举报
回复
好好学习之
erhan_106 2010-12-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chiyer 的回复:]
转个文章

C++中的位拷贝和值拷贝
abc2001 发表于 2008-1-16 12:18:00
0
推荐

为了便于说明我们以String类为例:

首先定义String类,而并不实现其成员函数。

Class String{
public:
String(const char *ch=NULL);//默认构造函数
String(const String &……
[/Quote]
学习了,顶。
mskmc_mc 2010-08-10
  • 打赏
  • 举报
回复
按值拷贝
即类中定义了类对象
按引用拷贝
即类中定义了引用或指针


都知道,类对象是不支持面向对象的,但是一个类对象支持自动构造,自动析构和自动拷贝、赋值,
如果这个类对象做为一个对象成员,将会使我们的代码管理很方便。

而C++中支持面向对象的只有引用和指针,它们可以在运行期间指向不同类型(继承关系),但是我们的代价必须自己管理这些指针或引用。


xzw3455 2010-08-10
  • 打赏
  • 举报
回复
我怎么什么都不懂啊
x46108447 2010-08-10
  • 打赏
  • 举报
回复
晕 ...
SuperLampard 2010-07-02
  • 打赏
  • 举报
回复
结帖率 0.00000000%
偶是江湖中人 2010-07-02
  • 打赏
  • 举报
回复
学习了
huhacn 2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用 93 楼 genius52z 的回复:]
其实都是值传递,只不过一个拷贝的是存放的地址(指针)。
一个拷贝的是指针所指向内存中的内容。
[/Quote]
+1
当参数是地址(指针)时,则通过改变生成的临时变量的解引用便能改变这个地址存放的值,
若是内容,则声称的临时变量与原来的变量便只是数值上的相等了
wxc1987821 2010-07-02
  • 打赏
  • 举报
回复
学习了
加载更多回复(106)

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧