assignment-operator

    14热度

    2回答

    在VS 2010 SP1,执行以下操作: class Foo { public: Foo() { } Foo(Foo const&) = delete; // Line 365 Foo& operator=(Foo const&) = delete; // Line 366 }; 不编译。它抱怨: CPPConsole.cpp(365):错误C2059:语法

    3热度

    4回答

    我在SO上看到了一些关于Big-Three和copy-swap的交易。 的确,我学到了一些新东西,但有一件事我不太明白。 为什么operator =返回一个引用而不是指针?

    1热度

    1回答

    孩子有两个父母:Foo和Bar。 Foo不允许复制。酒吧呢。 Child如何使用Bar的赋值操作符复制到Bar的Child子集中(同时保持Foo的子集完整)? 更具体一点:在下面的代码中,Child如何在replace_bar()内引用Bar? (你将如何修改线(X),以使代码编译?) class Foo { public: Foo() {} private: Foo (

    0热度

    3回答

    所以这里是交易,我认为我需要去关于我使用的模式的另一条路线,但我想我会首先得到一些专家意见。 我有一个类(UsingClass),它维护基类指针的动态列表。当向列表中添加一个新对象时,我必须弄清楚它是什么类型的对象,因为我无法真正以多态的方式使它工作。下面一行标记为“这不会像我想要的那样工作!”理想情况下多态地使用来自Derived类的=运算符,但不幸的是它只使用Base类的default =运算

    6热度

    3回答

    由于the QObject documentation和许多其他人解释,QObject有一个身份,从而隐藏其复制构造函数和赋值运算符。 但是,我不是从QObject得到它的动态属性功能或信号/插槽功能。我只想反射,或访问Foo::staticMetaObject的能力。 class Foo : public QObject { Q_OBJECT Q_ENUMS(Color)

    1热度

    2回答

    问题:我可以定义赋值运算符而不是复制构造函数吗?对于内部类(不在API中公开),这是否仍然是一个糟糕的设计实践? 的原因,我需要它:作为this question提到,QObject使得它的拷贝构造函数和赋值运算符私人,这样,如果一个子类试图要么使用,错误是在编译时发出的。 我需要以复制“价值”,然而定义赋值运算符(而不是“身份”为the Qobject documentation描述。我不随地使

    7热度

    3回答

    受this question的启发。 通常使拷贝构造函数和赋值操作符private的原因是为了make the class non-copyable,这样才能创建的对象和销毁,但不会复制 - 大多数时候是因为它们复制将毫无意义。在这种情况下,复制构造函数和赋值运算符都是private并且未实现 - 如果类不可复制,则无人复制。 是否有复制构造函数和赋值运算符需要为private并且同时具有有意义的

    3热度

    4回答

    标题基本上说这一切。我主要想这样做,以便我可以创建一个可以初始化其他API中的其他函数的参数的对象(比如自定义字符串对象)。下面是我试图让一个自定义的整数类工作的一个例子: #include <iostream> using namespace std; class test { public: int member; test(int i) : member(i)

    10热度

    2回答

    我觉得这个问题已经足够基本,可以在某处找到,但我似乎无法找到答案。 假设我有这样的代码: //class member function std::map< std::string, std::string > myMap; const std::map< std::string, std::string >& bar() { return myMap; } void my

    11热度

    6回答

    我试图把复制和交换成语到一个可重用的mixin: template<typename Derived> struct copy_and_swap { Derived& operator=(Derived copy) { Derived* derived = static_cast<Derived*>(this); derived->swap(copy