Skip to content

Instantly share code, notes, and snippets.

@cleak
Created February 9, 2018 18:11
Show Gist options
  • Save cleak/d1466e1b60a510ad2dec560c2af7855f to your computer and use it in GitHub Desktop.
Save cleak/d1466e1b60a510ad2dec560c2af7855f to your computer and use it in GitHub Desktop.
#include <iostream>
using namespace std;
struct GenericGreeterVTable {
void (*GreetFn) (void*, const char*)
};
class GenericGreeter {
public:
GenericGreeterVTable* myGreeterVTable;
GenericGreeter() {
myGreeterVTable = ... some static piece of memory with the GenericGreeter VTable ...;
}
void Greet(const char* name) {
GenericGreeterVTable->GreetFn(name);
}
};
class FriendlyGreeter {
public:
FriendlyGreeter() {
myGreeterVTable = ... some static piece of memory with the FriendlyGreeter VTable ...;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment