295 名前:デフォルトの名無しさん [2009/10/22(木) 09:47:34 ] >>294 >ここで、<CustomItem*>のように<>による記述を使っており、これがないとエラーが出るのですが、 >なぜ必要なのでしょうか?(C++の勉強不足かもしれない質問ですが、、、) <>の中に型を指定して、その型にキャストしたいことを、qgraphicsitem_castに教えるためのもの。 >ヘルプには >T qgraphicsitem_cast ( QGraphicsItem * item ) >Returns the given item cast to type T if item is of type T >とあり、どうも理解できません。よろしくお願いします。 リファレンスの記述のしかたが、分かりにくいだけだと思う。 個人的な好みだけれどむしろ T2* qgraphicsitem_cast<T1*>(QGraphicsItem * item) と書いてあってキャストに失敗したときT2が0になり、キャストに成功するとT1=T2になる、みたいに表記してあった方が わかりやすいと思う。 ちなみに、()を使うキャストは、C言語に元々あるキャスト方法で、C++でも使用できる。 C++には、C言語にはないキャストが4種類あってその記述方法では、qgraphicsitem_castのように、<>を用いる。 (ただし、まったく機能が違うという意味ではない。Cのキャストと機能が重なっているものもある。) qgraphicsitem_castや、qobject_castはQtだけで使用できるキャストで、使用する対象がQObjectであったり、QGraphicsItemに 限定されている。