uses reinterpret_cast to quickly call a child class method.
int main() {
//chaining call
Base* b = new IntObj(8);
Base* c = new IntObj(6);
b->setNext(c)->setNext(new IntObj(4));
std::cout << reinterpret_cast<IntObj*>(b)->getValue() << std::endl;
}