相关疑难解决方法(0)

什么是三法则?

  • 什么是抄袭的对象是什么意思?
  • 什么是复制构造函数复制赋值运算符
  • 我什么时候需要自己申报?
  • 如何防止复制对象?

c++ c++-faq copy-constructor assignment-operator rule-of-three

2067
推荐指数
8
解决办法
27万
查看次数

三阶规则与C++ 11一起成为五次规则?

因此,在观看了关于右值引用的精彩演讲之后,我认为每个类都会受益于这样的"移动构造函数",template<class T> MyClass(T&& other) 编辑,当然还有"移动赋值运算符",template<class T> MyClass& operator=(T&& other)正如Philipp在他的回答中指出的,如果它已经动态分配成员,或通常存储指针.就像你应该有一个copy-ctor,赋值运算符和析构函数,如果之前提到的点适用.思考?

c++ constructor rvalue-reference rule-of-three c++11

325
推荐指数
5
解决办法
7万
查看次数

在C++中复制构造函数和=运算符重载:可能是一个常见的函数吗?

自复制构造函数

MyClass(const MyClass&);
Run Code Online (Sandbox Code Playgroud)

和=运算符重载

MyClass& operator = (const MyClass&);
Run Code Online (Sandbox Code Playgroud)

有几乎相同的代码,相同的参数,只有不同的返回,是否有可能有一个共同的功能,他们都使用?

c++ c++-faq variable-assignment copy-constructor

81
推荐指数
2
解决办法
7万
查看次数

什么是复制省略以及它如何优化复制和交换习惯用法?

我正在阅读复制和交换.

我尝试阅读Copy Elision上的一些链接,但无法弄清楚它的含义.有人可以解释一下这种优化是什么,特别是下面的文字是什么意思

这不仅仅是为了方便,而且实际上是一种优化.如果参数绑定到左值(另一个非常量对象),则在创建参数时会自动创建对象的副本.但是,当s绑定到rvalue(临时对象,文字)时,通常会省略该副本,从而保存对复制构造函数和析构函数的调用.在赋值运算符的早期版本中,参数被接受为const引用,当引用绑定到右值时,不会发生复制省略.这导致创建和销毁另外的对象.

c++ optimization copy-and-swap copy-elision

30
推荐指数
1
解决办法
8465
查看次数

减少operator =和复制构造函数之间的代码重复

我有一个类,需要一个非默认的复制构造函数和赋值运算符(它包含指针列表).有没有通用的方法来减少复制构造函数和赋值运算符之间的代码重复?

c++ dry copy-constructor assignment-operator

16
推荐指数
3
解决办法
4947
查看次数

这是好的代码吗?(复制构造函数和赋值运算符)

由于某种原因,我不得不为我的班级提供复制构造函数和operator =.operator=如果我定义了一个副本ctor,我想我不需要,但是QList想要一个.把它放在一边,我讨厌代码重复,所以这样做有什么不对吗?

Fixture::Fixture(const Fixture& f) {
    *this = f;
}

Fixture& Fixture::operator=(const Fixture& f) {
    m_shape         = f.m_shape;
    m_friction      = f.m_friction;
    m_restitution   = f.m_restitution;
    m_density       = f.m_density;
    m_isSensor      = f.m_isSensor;
    return *this;
}
Run Code Online (Sandbox Code Playgroud)

只是出于好奇,没有办法切换它,以便大部分代码都在复制文件中并operator=以某种方式利用它?我尝试过,return Fixture(f);但不喜欢那样.


看来我需要更清楚地说明复制构造函数和赋值运算符已被我继承的类隐式禁用.为什么?因为它是一个抽象的基类,不应该自己实例化.然而,这门课程独立的.

c++ operator-overloading copy-constructor

10
推荐指数
3
解决办法
3307
查看次数

复制和分配

有人能解释一下复制和分配之间的区别吗?

SomeClass a;
SomeClass b = a; // assignment
SomeClass c(a); // assignment
b = c; // copying
Run Code Online (Sandbox Code Playgroud)

但有什么区别,为什么语言中有两种不同的结构?

c++

5
推荐指数
1
解决办法
155
查看次数

复制构造函数而不是赋值

经过大量搜索后,至少这个问题帮助我理解了使用复制构造函数和赋值运算符的区别
我的问题是关于这一行
instance has to be destroyed and re-initialized if it has internal dynamic memory
如果我初始化一个类似的实例
Object copyObj = null;然后再分配copyObj = realObj那么仍然这个开销(破坏和重新初始化)仍然存在?
如果没有,那么在这种情况下,为什么我应该使用Copy Constructor而不是直接分配对象

c++ java oop constructor

0
推荐指数
1
解决办法
8296
查看次数