2008-05-20から1日間の記事一覧
代入ではコピーコンストラクタは呼ばれない、と。 代入は演算子のオーバーロードで操作するのかな? #include <iostream> using namespace std; class Foo { int i; public: Foo(int i) : i(i) { cout << "constructor: " << i << "\n"; } Foo(const Foo &foo) { cout <</iostream>…
使えた。 #include <iostream> using namespace std; class Foo { int i; public: Foo(int i) : i(i) { cout << "constructor: " << i << "\n"; } Foo(const Foo &foo) : i(foo.i) { cout << "copy constructor: " << i << "<-" << foo.i << "\n"; i = foo.i; } int ge</iostream>…
デフォルト引数に仮引数は使えない、と。 #include <iostream> using namespace std; void func(int a, int b = a) { cout << a + b << "\n"; } int main() { func(10); return 0; } foo.cpp:5: error: `a' was not declared in this scope</iostream>
両方書いたらエラーになった。 宣言に書いておいたほうが無難かなぁ… #include <iostream> using namespace std; class Foo { private: int i; public: void set_i(int i = 100); int get_i(); }; void Foo::set_i(int i /*= 100*/) { this->i = i; } int Foo::get_i()</iostream>…
Function#bind()で部分適用できることを同僚に教えもらった。 ちまちまと使ってみているが、イベントリスナの登録時にElementを関連付けられるのがちょっと気に入っている。 var element = $('foo'); element.observe('click', function(foo, event) { // 「…
たぶんNRVOが効いてるはず。 #include <iostream> using namespace std; class Foo { private: int i; public: Foo(int i); }; Foo::Foo(int i) : i(i) {} Foo func() { return Foo(100); } int main() { Foo foo = func(); cout << &foo << "\n"; return 0; }</iostream>
参照を戻すことはできなかったけど、引数を参照にすることはできた。 ふつーどっちを使うんだろう? #include <iostream> using namespace std; class Foo { private: int i; public: Foo(int i); //Foo operator+(Foo foo); Foo operator+(Foo &foo); int get_i(); };</iostream>…