【初心者歓迎】C/C++室 Ver.49【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0143デフォルトの名無しさん
2008/02/22(金) 00:59:34#include <vector>
class Vector {
public:
Vector(size_t size) : m_array(size) { }
void output() const {
for(std::vector<int>::const_iterator it = m_array.begin();
it != m_array.end(); ++it)
{
std::cout << *it << ' ';
}
std::cout << std::endl;
}
private:
std::vector<int> m_array;
};
void Foo(const Vector& v) {
v.output();
}
int main() {
Foo(5); ←←←←←←←
}
これが直感的な挙動ではないことは分かってもらえると思う。
でも、コンパイル通るし、正常に動く。
explicit つけるとこういう時にコンパイルエラーにできる。
それでも Foo(Vector(5)); なら可だが、これは問題ないと感じてくれると思う。
■ このスレッドは過去ログ倉庫に格納されています