Refer to this: C++ "virtual" keyword for functions in derived classes. Is it necessary? - Stack Overflow (http://stackoverflow.com/questions/4895294/c-virtual-keyword-for-functions-in-derived-classes-is-it-necessary)
I think this is a good way. But currently it was not in our Coding style - CodeBlocks (http://wiki.codeblocks.org/index.php?title=Coding_style)
Index: plugins/codecompletion/parser/parserthreadedtask.h
===================================================================
--- plugins/codecompletion/parser/parserthreadedtask.h (revision 8991)
+++ plugins/codecompletion/parser/parserthreadedtask.h (working copy)
@@ -17,7 +17,7 @@
{
public:
ParserThreadedTask(Parser* parser, wxMutex& parserCS);
- int Execute();
+ virtual int Execute();
private:
Parser* m_Parser;
Any comments?
Quote from: ollydbg on April 16, 2013, 07:10:26 AM
Any comments?
Code to the style of the old code at the place you're adding the function and everything will be good :)
Quote from: oBFusCATed on April 16, 2013, 09:47:10 AM
Quote from: ollydbg on April 16, 2013, 07:10:26 AM
Any comments?
Code to the style of the old code at the place you're adding the function and everything will be good :)
Oh, I can't understand this sentence, can you be more specific?
I mean, the base class have the style:
class cbThreadedTask
{
public:
/// cbThreadedTask ctor
cbThreadedTask();
/// cbThreadedTask dtor
virtual ~cbThreadedTask() = 0;
/// This function is called to tell the task to abort (check cbThreadPool::AbortAllTasks)
void Abort();
/// Override this function with the task's job
/// Return value doesn't matter
virtual int Execute() = 0;
So, it is good to preserve the "virtual" before the int Execute() in the derived class. (Although it is not necessary)
Quote from: ollydbg on April 16, 2013, 11:07:03 AM
Code to the style of the old code at the place you're adding the function and everything will be good :)
I mean that it is best if you follow the style of the code you're modifying.
If the old code uses virtual ok you use it, too. If not you don't use it.
If you write new code you're free to choose what style to use.
p.s. this is my personal opinion, not a C::B rule
I commit the change(rev 8999), because I see a lot of derived classes in C::B use "virtual" keyword for virtual functions.