【发布时间】:2021-08-03 10:07:24
【问题描述】:
作为this question 的后续问题:
class Base {
public:
virtual ~Base() {}
virtual void func() = 0;
};
class A : public Base {
public:
void func() override { std::cout << this << std::endl; }
};
class B : public Base {
private:
Base& base;
public:
B(B&) = delete;
B(Base& b) : base(b) {}
void func() override { std::cout << &base << std::endl; }
};
int main()
{
A a;
B b(a);
B c(b);
return 0;
}
当复制构造函数被删除时,为什么重载决议不回退到构造函数引用基类 (B(Base& b))?
【问题讨论】:
标签: c++ language-lawyer