求高手指点:在纯虚函数的案例中,我严格按照老师的代码写的,但是出现了no appropriate default constructor available的现象。增加了person和work的默认构造函数就该好了。神马原因啊?
2017-02-15
已采纳回答 / YX4387299
如果在基类已经有virtual关键字的前提下,派生类需要加virtual关键字才通过的话,很有可能就是编译器的问题了,不同的编译器可兼容和扩展性能不同,就像有些编译器直接main(){}(不用int关键字)都可以编译,建议更新一下IDE试试
2017-02-15
前递增运算符和解除引用运算符优先度一致,所以假设*q=5;++*q=++(*q)=6;而*++q则是指向下一个内存地址,即*(++q)解除引用
2017-02-15
已采纳回答 / 范更
因为,内存中有程序代码区,堆区,栈区,全局区(静态区),文字常量区。在定义一个类时,它的成员函数,虚构函数,构造函数就被存入程序代码区,供所有对象调用。在实例化一个类的对象时,并没有拷贝类的函数,仅仅存入了数据成员,因此类的对象中有数据成员,然而当用父类的指针指向子类的对象时,调用同名函数时会调用父类的同名函数,当想要调用子类的同名函数引入了虚函数,当调用普通成员函数时,计算机可以在代码区识别该函数,无需用函数指针,因而,在对象中只有数据成员的大小。
2017-02-12