相关疑难解决方法(0)

C++意外行为(我的临时演员在哪里!?)

这是一个r值实验,但当gcc向我抱怨缺少move-constructor(我已删除它)并且没有回复到复制构造函数(正如我所料)时,它发生了变异我然后删除了-std =从标志c ++ 11尝试下面看到的,它有很多输出(它最初没有),因为我试图弄清楚为什么它不起作用(我知道如何调试,但我发现stdout上的消息是发生事情的一个很好的指标)

这是我的代码:

#include <iostream>

class Object {
public:
    Object() { id=nextId; std::cout << "Creating object: "<<id<<"\n"; nextId++; }
    Object(const Object& from) {
         id=nextId; std::cout << "Creating object: "<<id<<"\n"; nextId++;
        std::cout<<"(Object: "<<id<<" created from Object: "<<from.id<<")\n";
    }
    Object& operator=(const Object& from) {
        std::cout<<"Assigning to "<<id<<" from "<<from.id<<"\n";
        return *this;
    }
    ~Object() { std::cout<<"Deconstructing object: "<<id<<"\n";}

private:
    static int nextId;
    int id;
};

int Object::nextId = 0;

Object test();

int main(int,char**) {
    Object a;
    std::cout<<"A ought to exist\n";
    Object …
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c++ ×1