内联函数能不能定义成虚函数啊?
一个函数不可以既是虚函数又是内联函数。 严格的说法是:就算能建立内联虚函数,或者说虚函数被声明为内联函数,编译器遇到这种情况根本不会把这样的函数内联展开,而是当做普通函数来处理。编译器拒绝展开一个非虚内联函数,C++编译器常常首先会报错:“内联中断-函数太大”。如果内联函数调用自身,或者在某处传递其地址,编译器必须产生一个正常(外联)函数。对于内联虚函数,编译器将把它看做普通的虚函数。 应用中最好不要使用内联虚函数,因为它们几乎不会被展开。实际中开发者常常将简短的虚函数放在类声明中,这样做的目的不是希望这个函数被展开为内联,而是因为这样做程序看起来更方便和可读性更强。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有