Linker errors mean that you have not linked a library (or your IDE hasn't), or you haven't compiled the file that has Listener in it for example. Edit: So check you are compiling all the relevant files, and have settings to link all the relevant libraries.
This Part: for (Listener l in listeners)
is definitely psuedo code, and is definitely not C++, as Moschops has also said. It does look at bit like VBA though.
Well there you go - there is no code for the function, hence the errors.
Normally you have your class definition in the header file and the implementation of the function in the .cpp file.
In my IDE, when I create a new class, it create the .h and .cpp files for me. When I create a new function in the header file, it creates a stub for me in the .cpp file. A stub is an empty function definition.
If I had to guess, you've not yet written the update function, or if you have, you're not linking to the compiled code.
i'm from the java world and thought those header files were like interfaces in java...
They can be. It's up to you to make it like that. When you #include a header file, all that happens is the entire contents of the file is copied into the place where you #include it. That's it. It's up to you to make sure that copying all that code into that place makes sense and does what you want it to.