小编suk*_*mar的帖子

为什么重载赋值运算符返回对类的引用?

class item {
public:
    item& operator=(const item &rh) {
        ...
        ...
        return *this;
    }
};
Run Code Online (Sandbox Code Playgroud)

以下签名是错误的吗?

void operator=(const item &rh);
Run Code Online (Sandbox Code Playgroud)

item a, b;
a = b; // equivalent to a.operator=(b); so there is no need to return this.
Run Code Online (Sandbox Code Playgroud)

c++

5
推荐指数
2
解决办法
2373
查看次数

检查构造函数参数

class item
{
    int i;

  public:
    item(int no) {

    }
};
Run Code Online (Sandbox Code Playgroud)

我想检查构造函数参数.如果发现它保持负值,则应停止创建对象.

此处不能使用例外,因为目标系统不支持例外.

c++

4
推荐指数
2
解决办法
3312
查看次数

通过复制派生类的另一个对象,在创建派生类的对象时调用基类的复制构造函数

class base {};
class der : public base{};


der d1;
der d2(d1);
Run Code Online (Sandbox Code Playgroud)

此语句调用类base的默认构造函数,然后复制claas der的构造函数.我的问题是为什么C++没有提供调用基类复制构造函数的功能,同时通过复制派生类的另一个对象来创建派生类的对象

c++ inheritance language-design copy-constructor

2
推荐指数
1
解决办法
3152
查看次数