【RAD統合環境】 Qt 総合スレ 5 【Win/Mac/Linux】
at TECH
295:デフォルトの名無しさん
09/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に
限定されている。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5241日前に更新/218 KB
担当:undef