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

Load Balancing in Bluemix using custom domain and DNS SRV records -

oracle - pls-00402 alias required in select list of cursor to avoid duplicate column names -

python - Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] error -