|
|
1
6
你最好用
|
|
|
2
5
您的第三方法是有效的,因为C++允许将空指针转换为
|
|
|
3
2
至于你的第二个问题,当然在使用上有很多陷阱
|
|
|
4
2
只有当其中一个指针为void或者在类的对象之间进行强制转换(其中一个类被另一个类继承)时,指针之间的静态\u强制转换才是正确的。 |
|
|
5
1
2和3的区别在于,在3中,您显式地告诉编译器通过强制转换为void*停止检查您。如果使用3中的方法,几乎任何不是直接基元整型的东西,都将调用未定义的行为。无论如何,你可能会在#3中调用未定义的行为。如果它没有隐式地强制转换,除非你真的知道发生了什么,否则这几乎肯定是个坏主意,如果你将一个void*转换回原来不是它的类型,你会得到未定义的行为。 |
|
|
6
0
指针之间的强制转换需要
从任何指向
从
|
|
|
7
0
当心,当你施法作废时,你会丢失任何类型信息。 你试图做的是不正确的,错误的,容易出错和误导。这就是编译器返回编译错误的原因:-) 一个简单的例子
那么,尽管如此
我相信这是一个坏笑话,因此是坏代码。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |