A strange C++ class declaration -


have read thread in stackoverflow: strange class declaration , still confused below code in foo.h:

class foo checkleakdcl { 

i sure foo should class name, since there constructor , deconstructor can imply this.

i cannot see macro definition related checkleakdcl in .h file.

also confused answer strange class declaration , saying that:

q_core_export isn't identifier. it's platform-dependent macro, , it's used signal class that's intended used across library boundaries.

can give more explanation of this?


update:

found line in .h file, included in foo.h:

#define checkleakdcl  : private checkleak 

so class declarition should :

class foo : private checkleak { 

so foo extending checkleak, right?

if compile windows (using visual studio), highly possible evaluated 1 of microsoft specific linkage identifiers, dllexport or dllimport :

https://msdn.microsoft.com/en-us/library/81h27t8c.aspx

it used when create class exported dll or used dll in application, , dependig of it's either evaluated dllexport (dll exporting class) or dllimport (application importing class).

if compile gcc possibly evaluate 1 of gcc _-attribute__s. such __attribute__ ((visibility ("default"))) (https://gcc.gnu.org/wiki/visibility)

these extensions core c++ provided compilers make tasks more achievable (https://gcc.gnu.org/onlinedocs/gcc/c_002b_002b-extensions.html)

edit

after updated answer ... well, have private inheritance class. please note, terrible macro have there because

#define checkleakdcl  : private checkleak 

adds : in class declaration cannot use symbol anymore inherit base classes.

i'd recommend rid of macro altogether, if cannot, not use it, confuse code.


Comments

Popular posts from this blog

javascript - How to get current YouTube IDs via iMacros? -

c# - Maintaining a program folder in program files out of date? -

emulation - Android map show my location didn't work -