我知道无符号整数是臭名昭著的,C++ 开发人员通常会避免使用它。我有一个包含两个int
不应包含负值的成员变量的类:
.
.
.
private:
int m_Y_AxisLen;
int m_X_AxisLen;
.
.
.
我以防止任何负数输入的方式设计了成员函数的逻辑。所以我确保这两个成员不会被赋予负值。
但是,当我使用PVS-Studio时,这也会带来一些警告。例如这里:
for ( int row = 0; row < getY_AxisLen( ); ++row )
{
for ( int column = 0; column < getX_AxisLen( ) - 1; ++column )
{
if ( m_characterMatrix[ row ][ column ] == getFillCharacter( ) )
{
m_characterMatrix[ row ][ column ] = fillCharacter;
}
}
}
PVS-Studio 将索引归咎于我,row
而column
不是memsize
类型。这可能意味着我应该使用std::size_t row
and std::size_t column
??
但是,如果我这样做了,那么它仍然会抱怨并说将无符号整数类型与getY_AxisLen( )
(返回 an int
)进行比较是危险的。
所以这就是我想重写我的类的一部分来切换到这个的原因:
private:
uint32_t m_Y_AxisLen;
uint32_t m_X_AxisLen;
我谦虚地寻求以前处理过此类问题的专业人士的见解和建议。当涉及到这些问题时,您会采取什么方法?