【初心者歓迎】C/C++室 Ver.49【環境依存OK】at TECH
【初心者歓迎】C/C++室 Ver.49【環境依存OK】 - 暇つぶし2ch143:デフォルトの名無しさん
08/02/22 00:59:34
#include <iostream>
#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)); なら可だが、これは問題ないと感じてくれると思う。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch