rem: printf("BNode:      %p\n", &node); printf("BFile:      %p\n", &file); printf("BDirectory: %p\n", &dir);
add: printf("BNode:      %p (vtable: %p)\n", &node, *(void**)&node); printf("BFile:      %p (vtable: %p)\n", &file, *(void**)&file); printf("BDirectory: %p (vtable: %p)\n", &dir, *(void**)&dir);
context: main(){	// test with artificial classes defined in this file		#define RTTI_TEST(obj, className) rtti_test<A, B, C>(obj, className, \		"A", "B", "C")		A a;	B b;	C c;	printf("A: %p\n", &a);	printf("B: %p\n", &b);	printf("C: %p\n", &c);	RTTI_TEST(&a, "A");	RTTI_TEST(&b, "B");	RTTI_TEST(&c, "C");		// test with real classes defined in a library	#undef RTTI_TEST	#define RTTI_TEST(obj, className) rtti_test<BNode, BFile, BDirectory>(obj, \		className, "BNode", "BFile", "BDirectory")		BNode node;	BFile file;	BDirectory dir;	printf("BNode:      %p\n", &node);	printf("BFile:      %p\n", &file);	printf("BDirectory: %p\n", &dir);	RTTI_TEST(&node, "BNode");	RTTI_TEST(&file, "BFile");	RTTI_TEST(&dir, "BDirectory");	return 0;}