struct method linking

Posted by James on Stack Overflow See other posts from Stack Overflow or by James
Published on 2010-03-25T15:29:41Z Indexed on 2010/03/25 15:33 UTC
Read the original article Hit count: 392

Filed under:
|

I'm updating some old code that has several POD structs that were getting zero'd out by memset (don't blame me...I didn't write this part). Part of the update changed some of them to classes that use private internal pointers that are now getting wiped out by the memset.

So I added a [non-virtual] reset() method to the various structs and refactored the code to call that instead.

One particular struct developed an "undefined reference to `blah::reset()'" error.

Changing it from a struct to a class fixed the error.

Calling nm on the .o file h, the mangled function names for that method look the same (whether it's a class or a struct).

I'm using g++ 4.4.1, on Ubuntu.

I hate the thought that this might be a compiler/linker bug, but I'm not sure what else it could be. Am I missing some fundamental difference between structs and classes? I thought the only meaningful ones were the public/private defaults and the way everyone thinks about them.

© Stack Overflow or respective owner

Related posts about c++

Related posts about gcc