首页 文章
  • 16 votes
     answers
     views

    三规则的例外情况?

    我已经阅读了很多关于C Rule of Three的内容 . 很多人都发誓 . 但是当规则被陈述时,它几乎总是包括像"usually," "likely,"或"probably,"这样的词,表示存在例外 . 我没有't seen much discussion of what these exceptional cases might b...
  • 3 votes
     answers
     views

    我是否违反了三条规则?

    我最近读过,Rule of three,我想知道我是否违反了它? 在我的GUI应用程序中,类如 MainFrame , Interface , Circuit , Breadboard 等(类名称是指示性的)具有每个类的单个实例 . 在他们的构造函数中,我已经分配了一些资源(内存),我在析构函数中安全地释放了这些资源 . 所以我只定义了 destructor ,但没有 copy construct...
  • 8 votes
     answers
     views

    C复制构造函数指针对象

    我正在尝试学习C中的“三巨头” . 我设法为“三巨头”做了非常简单的程序..但我不知道如何使用对象指针..以下是我的第一次尝试 . 当我写这篇文章时,我有一个疑问...... Questions 这是实现默认构造函数的正确方法吗?我不确定我是否需要它 . 但是我在另一个关于带有指针的复制构造函数的线程中发现的是我需要在复制构造函数中复制地址之前为该指针分配空间 . 如何在复制构造函数中指定...
  • 1909 votes
     answers
     views

    什么是三法则?

    复制对象意味着什么? 什么是复制构造函数和复制赋值运算符? 我什么时候需要自己申报? 如何防止复制对象?
  • 313 votes
     answers
     views

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

    所以,在看了rvalue引用的this wonderful lecture之后,我认为每个类都会受益于这样的"move constructor", template<class T> MyClass(T&& other) edit ,当然还有"move assignment operator", template<cla...
  • 1 votes
     answers
     views

    为什么在三规则中不考虑非默认构造函数?

    三规则(也称为三巨头或三巨头的规则)是C中的一个经验法则,声称如果一个类定义了下面的一个,它应该明确地定义所有三个:析构函数,复制构造函数,复制赋值运算符 . 为什么非默认构造函数不被视为其中之一?当在类中管理任何资源时,程序员必须始终定义非默认构造函数 .
  • 3 votes
     answers
     views

    C中的三法则

    我读过“三法则”,What is The Rule of Three?总结如下: 如果您需要自己显式声明析构函数,复制构造函数或复制赋值运算符,则可能需要显式声明它们中的所有三个 . 我的问题是:在C应用程序中,我有一个管理资源的类(有一个处理删除指针的析构函数) . 我知道应用程序在所有地方使用赋值运算符,但我绝对肯定在复制构造函数的应用程序中没有用法,即使用类型 Class c(..); ...
  • -1 votes
     answers
     views

    三规则 . 复制构造函数,赋值运算符实现[关闭]

    三规则 . 复制构造函数,赋值运算符实现 #include <iostream> using namespace std; class IntPart { public: IntPart(); // default constructor IntPart(int n); private: unsigned int* Counts; unsigned int numPart...
  • 1 votes
     answers
     views

    C - 对于指向对象的指针向量,是否重新分配会导致删除和复制对象?

    从我到目前为止的理解,如果你有一个类对象的向量,如果你擦除向量的任何成员,通常向量将重新分配它的一些对象,以保持内存连续性 . 因此,您需要为擦除矢量成员时要保留的所有内容实现三个规则(析构函数,复制构造函数和复制赋值运算符) . 但是:对于指向类对象的指针向量,结果对我来说不太清楚 . 如果我擦除一个成员,那么C肯定足够聪明,只需复制指针 - 不要疯狂地删除指针(以及它指向的类对象),然后重新创...

热门问题