第十一周项目—阅读程序,说出在测试函数中不同情况的调用产生的结果(5 d)

来源:互联网 发布:字母设计软件 编辑:程序博客网 时间:2024/06/05 13:25

问题及代码:

/**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);    A *p=&a;    p->printA();    p=&b;    p->printA();    //p->printB(); 有错误,A类中没有这个成员函数    return 0;}

错误 :error: 'class A' has no member named 'printB'
       类A中没有 printB

错误的原因:p首先被声明为类A的指针,故p指针包含类A的成员,而在”p=&b;“中将其赋值为类B的对象,
           但是它不会自动添加成员,所以缺失printB成员函数。

删除后的结果:
                        


0 0
原创粉丝点击