第十一周项目—阅读程序,说出在测试函数中不同情况的调用产生的结果(5 b)
2016-05-18 16:34
363 查看
问题及代码:
程序编译错误 :error: no match for 'operator='(operator types are 'B' and 'A')
运算符两边不匹配
程序编译错误原因 :派生类对象有基类对象的所有成员变量以及成员函数,可能还有基类
没有的成员变量或成员函数,此时如果将基类对象赋值给派生类,可
能成员函数就报错了,所以基类对象不可以赋值给派生类。
相反,派生类的对象可以赋值给基类。
/* *Copyright(c) 2016.烟台大学计算机与控制工程学院 *ALL rights reserved. *文件名称:main.cpp *作者:郝昱猛 *完成日期:2016年5月18日 *问题描述:阅读程序,说出在测试函数中不同情况的调用产生的结果 */ #include <iostream> using namespace std; class A { protected: int a,b; public: A(int aa, int bb):a(aa), b(bb) {} void printA(){ cout<<"a: "<<a<<"\tb: "<<b<<endl; } }; class B: public A { int c; public: B(int aa, int bb, int cc):A(aa,bb),c(cc) {} void printB() { cout<<"a: "<<a<<"\tb: "<<b<<"\tc: "<<c<<endl; } }; int main() { A a(1,1); B b(2,3,4); b=a; //有错误,基类对象不可以赋值给派生类 a.printA(); b.printA(); b.printB(); return 0; }
程序编译错误 :error: no match for 'operator='(operator types are 'B' and 'A')
运算符两边不匹配
程序编译错误原因 :派生类对象有基类对象的所有成员变量以及成员函数,可能还有基类
没有的成员变量或成员函数,此时如果将基类对象赋值给派生类,可
能成员函数就报错了,所以基类对象不可以赋值给派生类。
相反,派生类的对象可以赋值给基类。
相关文章推荐
- LTE时代ICT产业趋势和战略分析
- shiro+springMVC文档
- css引用第三方字体库
- 使用UIBezierPath和CAShapeLayer画各种图形
- Win7系统网页内容怎么保存?Win7系统截取整个网页的方法
- 块存储、文件存储、对象存储这三者和分布式文件存储系统的本质区别
- Android Tips 8
- STM32 USART串口DMA接收和发送模式
- nginx变量使用方法详解(8)
- 10.UIImageView
- Android--手机一键Root原理分析
- 分布式高并发服务器做请求分发,session共享(nginx+tomcat+redis)
- js实现复制到剪贴板功能,兼容所有浏览器
- A Detailed Review of Feature Extraction in Image Processing Systems图像处理系统中特征提取的详细介绍
- 天狐博客
- 开发工作中使用过的mysql的一些总结
- 集成多路模拟开关的应用技巧
- Struts2中 Result类型配置详解
- 23种设计模式(2)-简单工厂模式
- 2.uCOSIII任务管理