我有一个提供接口以使用operator []访问其数组的类。 像这样:
delete
我不希望此类的接口被错误类型的参数滥用,
例如double / float,因为此处的隐式强制转换会导致错误的结果。
类的用户必须自己指出正确的idx,而不是躺在class MyArray {
public:
MyArray( int iSize ) :
m_iSize( iSize ),
m_upArray( std::make_unique<string[]>( iSize ) ) {};
const string& operator[]( int idx ) const {
return std::max( 0, std::min( m_iSize - 1, idx ) );
};
private:
int m_iSize;
std::unique_ptr<string[]> m_upArray;
};
上。
如果我接受double / float作为idx,将来很难调试我们的程序!
是否可以通过非整数参数拒绝它们? 最好是拒绝正在编译的有病代码。