gpt4 book ai didi

c++ - 将 const 数据传递给采用非常量而不使用 const_cast 的函数

转载 作者:行者123 更新时间:2023-11-30 02:28:21 26 4
gpt4 key购买 nike

如果我使用 const_castMethod(Xp_T* pParameters) 接受一个 const Xp_T&参数类型,但我不喜欢在这里使用 const_cast 并希望修改 Method(Xp_T* pParameters),使其接受 const Xp_T& 参数类型。

bool Class::Method(const Parameters& rParameters )
{
rParameters.Method(&m_Xp); // I wouldn't prefer to use const_cast here
return true;
}

基类方法:

template<typename Xp_T>
void Method(Xp_T* pParameters )
{
(*pParameters) = (static_cast< Xp_T&>(*this));
}

最佳答案

尝试修改最初声明为 const 的变量的行为是未定义

唯一真正安全的方法是获取 const 变量的值拷贝,并将它或指向它的指针传递给非 const 函数。该函数所做的任何修改都将在调用站点被丢弃。

关于c++ - 将 const 数据传递给采用非常量而不使用 const_cast 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40846537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com