首页 > 编程知识 正文

派生类重载基类函数,cpp重载运算符

时间:2023-05-04 08:23:45 阅读:163262 作者:637

条件1 ) b继承a,c继承bclassa (公共: void PP ) ) { cout 'A' endl; }; classb : publica { public : void PP () } { cout ' b ' endl; }; class c : publicb { public : void PP () } { cout ' c ' endl; }; 条件2:voidPP(b*b ) voidPP ) a*a )问题) PP ) newc )属于哪个重载函数coding:classa ) public3360voidPP ) { cout 'A' endl ; classb : publica { public : void PP () } { cout ' b ' endl; }; class c : publicb { public : void PP () } { cout ' c ' endl; }; class d : publica { public : void PP () } { cout ' d ' endl; }; voidPP(B*B ) ) {b-pp; 计数' bpp ' endl; }voidPP(a*a ) ) {a-pp; cout 'APP' endl; (}int main ) ) PP ) newc; 返回0; (输出结果) CBPP单线继承较多(class D : public B,publica ) public:virtualvoidPP ) ) { cout 'D' endl; }; int main () PP (newd ); 返回0; (输出) DBPP多继承下) classa ) public:virtualvoidPP ) { cout 'A' endl; }; classaa { public : virtualvoidpp (} { cout ' aa ' endl; }; class D : public A,publicaa { public : virtualvoidpp () } { cout ' d ' endl; }; voidPP(a*a ) ) {a-pp; cout 'APP' endl; }voidPP(a*a ) ) {a-pp; cout 'APP' endl; (}int main ) ) PP ) newd ); 返回0; 结果:编译错误:对pp重载函数的调用未知

结论:

重载派生,就近原则。 如果无法确定,则会编译错误

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。