C++中static_cast和C语言中的显式强制类型转换的区别

class A
{
};

class B : public A
{
};

class C
{
};

int main()
{
	A* a = new A();
	B* b = static_cast<B*> (a);
	C* c = static_cast<C*> (a); // 编译器会检查出语法错误

	B* b1 = (B*) a;
	C* c1 = (C*) a;             // 编译器不会检查出语法错误
	return 0;
}

猜你喜欢

转载自blog.csdn.net/u013404885/article/details/129483181