虚函数中调用虚函数要注意的地方
2017-03-12 17:51
162 查看
今天遇到一个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也是通过指针动态调用的。
并不是不知道。只是没有注意这个细节。导致调试了好久。
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也是通过指针动态调用的。
并不是不知道。只是没有注意这个细节。导致调试了好久。
相关文章推荐
- 虚函数调用时一点注意,调用基类函数时调用派生类函数
- Python 引用多个模块,调用模块中的函数时...要注意的地方
- Python引用多个模块,调用模块中的函数时,要注意的地方
- Python 引用多个模块,调用模块中的函数时...要注意的地方
- .mm文件中调用.m文件中函数的注意事项
- 使用斯凯平台图片缩放函数注意的地方
- C++中方法定义和调用需要注意的一个地方
- (TIP)service使用process类调用bat文件时应该注意的一个地方
- 初始化函数中的虚函数调用( C++ vs python )
- VC中程序调用Js自定义函数的注意事项
- C++構造函数应该注意的地方
- .NET工程中以 C 和 C++ 两种方式编译时,函数调用注意事项
- 虚函数和非虚函数的调用
- isnumberic函数要注意的地方
- J2ME程序开发要注意函数调用对性能的影响
- 调用重载操作符operator []时应该注意的地方
- CreateIpForwardEntry函数在VIsta/win2008下需要注意的一个地方
- isnumberic函数要注意的地方
- 类中的虚函数,通过指针获得vtable内容,然后通过函数指针指向虚函数并调用
- 调用自定义函数注意事项