【发布时间】:2015-03-01 12:55:26
【问题描述】:
请说明为什么编译器不允许这种类型转换...错误编译器显示为“ Invalid static_cast from float * to int *”
#include<iostream>
using namespace std;
int main()
{
float f=45.678;
float *a;
a=&f;
int *d;
cout<<static_cast<int *>(a);
}
【问题讨论】:
-
为什么应该允许演员表?
-
因为强制转换旨在允许不同数据类型之间的转换...@christian hackl
-
可能需要更简单和更深入的解释@scis
-
@virusai:C++ 风格的转换明确设计为只允许 某些 类型的转换。这是他们的一大优点。与 C 风格的强制转换不同,它们可以防止意外强制转换和无声错误。 Scis 链接的答案有什么问题?
标签: c++ static-cast