#pragma once

#include <iostream>

// 左值引用与右值引用
void lrvalue();

// std::move 与 类的各种构造
class CHouse
{
public:
    CHouse() = default;
    ~CHouse() = default;

public:
    //CHouse(CHouse& rh);         // 复制构造函数,仅接受左值。
    CHouse(const CHouse& rh);   // 复制构造函数,左值右值均可。
    CHouse(CHouse&& rv) noexcept;   // 移动构造函数仅接受右值。
    CHouse& operator=(const CHouse& rh);   // 赋值构造函数,左右值均可。
    //CHouse& operator=(CHouse&& rv) noexcept;   // 赋值构造函数,仅接受右值。
};

void demo();