【发布时间】:2024-01-17 13:12:01
【问题描述】:
如何使用类型转换为 const UINT 来解决以下警告?
C4267: 'return' : 从 'size_t' 转换为 'const UINT',可能丢失数据
Class CManager
{
std::vector<CString> m_ncount;
public:
const UINT GetMCount( int nInst) const;
}
const UINT CManager::GetMCount( int nInst) const
{
return m_ncount.size();//C4267
}
这是正确的吗?:
const UINT CManager::GetMCount( int nInst) const
{
return (const UINT)m_ncount.size();//C4267
}
【问题讨论】:
-
为什么不返回 size_t?
-
size_t保证代表 C++ 中任何对象的大小,而UINT不能。改为返回size_t。 -
没有理由返回
const UINT。只需返回UINT(或者更好的是std::size_t)。