虚函数中调用虚函数要注意的地方

    xiaoxiao2021-03-25  67

    今天遇到一个BUG。居然没有注意虚函数中调用虚函数的问题

    class base { public: base(){}; virtual void printa() { printf("base A\n"); } virtual void printb() { printf("base B\n"); printa(); } }; class son :public base { public: son(){}; virtual void printa() { printf("son A\n"); } }; int _tmain(int argc, _TCHAR* argv[]) { son s; s.printb(); getchar(); return 0; }

    打印的结果是 

    baseB 

    sonA 之前没有注意,认为printb中调用的printa就是base的printa。实际上这个printa也是通过指针动态调用的。

    并不是不知道。只是没有注意这个细节。导致调试了好久。

    转载请注明原文地址: https://ju.6miu.com/read-35842.html

    最新回复(0)