开发平台(Platform): (Ex: Win10, Linux, ...)
win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Visual studio 2008
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
无
问题(Question):
请问不定参数函式 怎写override?
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
http://codepad.org/68O4dTXM
补充说明(Supplement):
上方连结的程式码是个示意example
假设CBaseLogger已经是一个做好的logger
基本功能(开档写档)都在CBaseLogger::Log()里面了
CDerivateLogger仅仅是加入一个flag 用来开启or关闭写log的功能
请问此处我该如何撰写关于CDerivateLogger::Log()这个函式的override才正确呢?
先在此感谢各位板友。
补充:
我发现这问题时看到奇怪的现象
1. 一开始我没发现CDerivateLogger::Log()这样写是有问题的
Log档里面写出来的是对的
2. 后来我为了要debug, 因此把VC的optimize关闭, 然后发现突然程式会crash
有时候没有crash, 但Log里面写出来一堆乱码
3. 我仔细看code后才发现这边可能有问题, 但即使如此, 为何在release build的情况下
Log竟然能写出正确的值?
是否va_start/va_list/va_end这几个function在release build能够找到正确的参数?