如何以c ++样式将const类指针转换为int *?
仅使用4个C ++ static_cast,dynamic_cast,reinterpret_cast或const_cast
请考虑以下课程:
class A
{
public:
virtual void foo(A& a) { std::cout << "A::foo" << std::endl; }
};
void logPtr(int* c) { std::cout << std::hex << c << std::endl; }
const A* pa = new A();
logPtr((int*)pa);
以c ++样式转换的类型应如何出现在此代码中?
我希望C样式转换以及C ++样式类型转换都输出十六进制数字。
答案 0 :(得分:0)
您将需要使用CarouselContainer
,但请允许我使用frame challenge:首先不要使用@State var showAlert = false
let alert = Alert(title: Text("Title"), message: Text("Alert message"),
primaryButton: Alert.Button.default(Text("OK"),
onTrigger: {
print("OK button tapped")
}
),
secondaryButton: Alert.Button.cancel()
)
var body: some View {
NavigationView {
Text("Content")
.navigationBarItems(trailing: Button(action: {
self.showAlert = true
}, label: {
Text("Show Alert")
}).presentation(self.$showAlert, alert: {
return alert
})
)
}
}
。 reinterpret_cast
是更好的选择。任何指针类型都可以转换为int*
,而无需强制转换。
void*
不必强制输入类型。