Qtの魅力は、画面作成をGUIでできることじゃなかろうか。
昔の私は「GUIで作ると汎用過ぎて描画が遅くなるじゃろう」と相手にしなかったのだが、歳をとった。
作りやすさと、メンテナンスの容易さ、そして組み込み機器の高速化など、いろいろな要因があるのじゃ。
まあ、それはいいや。
Qt Labのページを見ながら、ブラウザを作ってみた。
うん、書いてあるとおりにやるだけでたいがいのことはできそうだ。
さて、ここでURLを扱うQUrlというクラスを扱う必要があった。
引数なのだが、参照型だ。
func(const QUrl& url)
こんなの。
説明には「class QUrl; がいる」とあるのだが、ポインタならまだしも、参照も同じようにやれるのか?
まあ、やってみると確かにそうだった。
参照って、どういう解決のされ方をしてるんだろう?
ポインタの場合、引数はアドレス値を渡すだけだから、ポインタ型の一般的なサイズさえわかればいい。
だから名前解決するだけのforward class(クラスの前方参照、という訳でいいのか?)でよいのだ。
実体の場合、コピー渡しになるので、classのサイズがわからないとスタックを使う量が決まらない。
なので、includeが必要になる。
参照は、既に存在するメモリをそのまま使うので、スタックは必要ない。
そういう意味ではポインタと同じような扱いになりそうだ。アドレスを渡す必要もないけど、結果としてはアドレスなのかな?
あるいはレジスタでそのまま・・・とかはコンパイラレベルの話になりそうだ。
気にはなるが、もう寝よう。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。