Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
virtual keyword in derived class (code style guide)
(1/1)
ollydbg:
Refer to this: C++ "virtual" keyword for functions in derived classes. Is it necessary? - Stack Overflow
I think this is a good way. But currently it was not in our Coding style - CodeBlocks
--- Code: ---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;
--- End code ---
Any comments?
oBFusCATed:
--- Quote from: ollydbg on April 16, 2013, 07:10:26 am ---Any comments?
--- End quote ---
Code to the style of the old code at the place you're adding the function and everything will be good :)
ollydbg:
--- Quote from: oBFusCATed on April 16, 2013, 09:47:10 am ---
--- Quote from: ollydbg on April 16, 2013, 07:10:26 am ---Any comments?
--- End quote ---
Code to the style of the old code at the place you're adding the function and everything will be good :)
--- End quote ---
Oh, I can't understand this sentence, can you be more specific?
I mean, the base class have the style:
--- Code: ---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;
--- End code ---
So, it is good to preserve the "virtual" before the int Execute() in the derived class. (Although it is not necessary)
oBFusCATed:
--- 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 :)
--- End quote ---
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
ollydbg:
I commit the change(rev 8999), because I see a lot of derived classes in C::B use "virtual" keyword for virtual functions.
Navigation
[0] Message Index
Go to full version