zoukankan      html  css  js  c++  java
  • [C++] 为什么operator = 不能被继承

    class A{
    public:
    	A& operator += (const A&) {return *this;};
    	A& operator = (const A&) {return *this;};
    };
    
    class B:public A{
    public:
    	B(){};
    	virtual ~B(){};
    };
    
    int main(){
    	A a;
    	B b;
    	b +=a;
    	b = a; //invalid
    	return 0;
    }
    

     

    为什么 b += a;可以编译通过,但是b = a不行呢 ??

    因为operator =很特殊,即使你没有写,compiler也要生产一个,所以已经有一个类型为

    B& operator B(const B&)的函数在哪里了。

  • 相关阅读:
    正向代理与反向代理
    uniapp
    js
    js
    uniapp
    uniapp
    uniapp
    uniapp
    关于资源获取(请把https改为http)
    uniapp
  • 原文地址:https://www.cnblogs.com/aoaoblogs/p/2557810.html
Copyright © 2011-2022 走看看