|
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ] ヘッダ検索 ■ ThisPointerDESC this は const ではない。変更ができる。 なぜか ? this の中で当然. 自分自身を修正できるから ので const 関数に渡しても問題なし. this は CMP としては Foo *const という扱いになる &this はだめらしい ( '&' に左辺値がありません。) ie. アドレス演算子(&)のオペランドには左辺値( 代入できる式 )が必要ということ。 ( 変数(箱)がないと, その場所を返すことができない ) ClsFoo *p = 0; this = p; // ERR ( this は左辺値ではない ) POINT SingleInheritance ( SI )に対しては this は不変. MultiInheritance ( MI )に対しては this はかわる. func1 adr 22ef04 // int 1 個分のずれ. func2 adr 22ef00 func0 adr 22ef00 func3 adr 22ef00 POINT 実は MemFunc へのアクセスは, this ポインタが仕込まれている memFunc( Foo *this ); そのため内部で VarMem を利用しない場合は NULL を渡しても問題ない。 |
|