1.8

#include <iostream>
#include <typeinfo>
using namespace std;
class Base {
public:
	virtual void f() {}
};

class MyClass : public Base {
public:
	void derivedOnly() {
		cout << "Bu MyClass obyekti.\n";
	}
};
int main() {
	Base* bp, b_ob;
	MyClass* dp, d_ob;
	//  typeid operatoridan foydalanish
	bp = &b_ob;
	if (typeid(*bp) == typeid(MyClass)) {
		dp = (MyClass*)bp;
		dp->derivedOnly();
	}
	else
		cout << " Base tipidagi obyekt MyClass almashtirilmadi. \n";
	bp = &d_ob;
	if (typeid(*bp) == typeid(MyClass)) {
		dp = (MyClass*)bp;
		dp->derivedOnly();
	}
	else
		cout << "Xatolik, tip almashtirish yozilmagan! \n";
	// dynamic_cast operatoridan foydalanish
	bp = &b_ob;
	dp = dynamic_cast<MyClass*> (bp);
	if (dp) dp->derivedOnly();
	else cout << " Base tipidagi obyekt MyClass almashtirilmadi. \n";
	bp = &d_ob;
	dp = dynamic_cast<MyClass*> (bp);
	if (dp) dp->derivedOnly();
	else cout << "Xatolik, tip almashtirish yozilmagan! \n";
	system("pause");
	return 0;
}
Run on cpp.sh