【问题标题】:Does c++ dereference assignment do a bitwise or "smart" assignment?c++ 取消引用赋值是按位还是“智能”赋值?
【发布时间】:2012-04-19 04:53:38
【问题描述】:

我想知道

*this = *that

将对“that”按位赋值给“this”,或者调用“this”类的赋值运算符。

谢谢!

【问题讨论】:

  • 当您决定使用指针时,编译器没有真正的理由覆盖正常行为...

标签: c++ copy bit-manipulation variable-assignment dereference


【解决方案1】:

它调用赋值运算符,如this->operator=(*that);

【讨论】:

  • 所以我正在编写一个容器类,输入每个对象的单元格。我正在编写赋值运算符 - 执行 *thisObject = *thatObject 是否安全?如果它是动态分配对象的容器,那么 thisobject 类的正确构造函数会被调用吗?如果 'thisObject' 不是指针怎么办?
  • 如果您的容器的赋值运算符复制构造原始对象的副本而不是分配它们可能会更好,因为通常您不知道将它们分配给谁。基本上,如果你要重写vector,就像vector 一样。
  • 我不太清楚你的意思 - 目前我正在删除“this”堆栈中的所有单元格(我正在写一个堆栈),重置它的变量,并循环遍历“那个” ' 堆栈并将它们添加到 'this' 堆栈中。我想我也想知道如何检查类型是否是指针 - 如果是这样,我会使用上面的取消引用分配希望做一个深拷贝并将其推送到堆栈。如果不是,我需要找到一种方法不使用取消引用以免导致错误
猜你喜欢
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
  • 2011-07-19
相关资源
最近更新 更多