我必须展示在 c++ 中无法内联的函数。
为了检查这一点,我-Winline
设置了标志。
使用递归函数,我能够生成一个不能内联的函数。
但我对继承和“虚拟”关键字进行了同样的尝试。但是我不能让编译器抱怨某些东西不可能内联。
我知道这个话题已经涵盖了很多。但我只是没有找到一个可行的例子。我的编译器“聪明”吗:-)
我用这个试过:
class virt1
{
public:
virt1(){};
inline virtual int virtFunc(int a){ return a*a; };
virtual ~virt1(){};
};
class virt2 : public virt1
{
public:
virt2(){};
inline virtual int virtFunc(int a){ return a+a;};
virtual ~virt2(){};
};
void testVirtFunc(virt2 &obj)
{
std::cout << obj.virtFunc(2);
}