javaを少し触った程度でしかない私ですが、
他人のC++のプログラムを眺めていて、
よく分からない事があり、
内容について、
確認させてもらいたいたく2点質問させてもらいます。
すごく初歩的な内容なのかもしれませんが、
アドバイスもらえると嬉しいです。
=================================================
(1) typedef owatashi<zoo<fruit, flower>, shop<fruit, flower>> owatashi_type;
(2)
(3) void send(const fruit_type& fruit, const flower_type& flower) {
(4) owatashi_type::speak(id::okuru(owatashi_type::bits()));
(5) }
=================================================
上記内容のプログラムだったのですが、
ネットでtypedefを調べていて、
「owatashi」を「owatashi_type」に
名前の変換をしていているのまでは、
分かったのですが、
4行目の「owatashi_type::bits()」の部分で
誰かに聞いてみたい事が出てきました。
これは直前で、
「owatashi」が「owatashi_type」に
typedefされているので、
「owatashi」クラスや構造体(?)の下に、
「bits()」というオブジェクトがあるという意味で
合っているでしょうか?
探し方合っていますでしょうか?
確かに、このcppファイルとは別の場所にある、
「owatashi」クラスを見つけ、
下記のような、「owatashi」クラスの下に、
「bits()」という記述も見つけました。
どうも自信がなく、
誰かに聞きたい気持ちになってしまいました。
プログラムの見方(追い方)として間違っていないか?が不安です。
アドバイスの程宜しくお願いします。
=========================
int bits(){
return _shop -> bits();
}
=========================
2つ目の質問です。
1つ目の質問と同様に4行目にある、
「owatashi_type::speak」の部分についてなのですが、
「owatashi」クラスを見つけ、
「owatashi」クラスの下に、
「speak」という記述があるか?を確認したのですが、
下記のとおり、boostに囲まれた記述のみが確認できました。
=========================
boost::shared_ptr<zoo> speak(const id& id) {
return _shop->speak(id);
}
=========================
ネットで調べていて、
boostというライブラリが何なのか?というのは、
ぼんやりと分かったのですが、
一番知りたいのは、
1つ目の質問と同じなのですが、
プログラムの見方(追い方)として間違っていないか?が不安です。
「owatashi」クラスの下に、
「speak」というオブジェクトがあるという意味で
合っているでしょうか?
皆様どうぞ宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
こんにちは。
うう~む、どう見ても初級だなんて簡単なモノでは無いです・・・。
取り敢えず、見方は其れでよいのだと思います。
其の呼び出し方は、staticメンバ関数ではないでしょうか。
以下は当方の勝手な想像
template<class zoo, class shop>
class owatashi
{
public:
static int bits();
static boost::shared_ptr<zoo> speak(const id& id);
private:
static shop* _shop;
};
owatashi<zoo<fruit, flower>, shop<fruit, flower>>::bits();
と書く代わりに
typedef owatashi<zoo<fruit, flower>, shop<fruit, flower> > owatashi_type;
owatashi_type::bits();
と書ける。owatashi_type::speak()についても同様。
後、boost::shared_ptr<T>と言うのは、boostライブラリの中にある、リファレンスカウンタ方式のスマートポインタの事です。
なのでowatashi<zoo, shop>クラスの中に、speak()とbits()というstaticメンバ関数があり、其れを呼び出しているのではないでしょうか。
machongolaさん!
ご回答いただきまして、
ありがとうございました!
とても内容分かりやすかったです!
そして、理解する事ができました!
周りに聞ける人がいないため、
とても参考になりました。
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
河合塾のクラス分けについて
-
同じクラスにならない確率を教...
-
シングルページでのカレント表...
-
ATLとMFCの違いは何でしょうか?
-
IPアドレスの3バイト目の呼び方
-
クラスモジュールの使い方が詳...
-
現在または将来、需要のある言...
-
A・B・Cクラスとは?
-
オブジェクト間の依存性とは
-
IPアドレスのクラスAを取得して...
-
eclipse でクラスに色
-
DIVの中の<a>について
-
FunkctionとMethodの違いについ...
-
成人式の後中3のクラスで集まろ...
-
進学校通ってたんですけど、眼...
-
3年間同じクラスになる確率
-
重複エラーを解決するには
-
無名インナークラスからアクセ...
-
「天声人語」をインターネット...
-
JSP jsp:usebean で総称型クラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の重複する値とその個数を...
-
どこからも呼ばれていない無意...
-
java eclipse 型に解決できません
-
「天声人語」をインターネット...
-
main()を持つクラスが2つ以上...
-
1 つのヘッダファイルに複数の...
-
IPアドレスのクラスAを取得して...
-
同一パッケージにあるクラスが...
-
同じクラスにならない確率を教...
-
重複エラーを解決するには
-
共通で使う関数を集めたクラス...
-
3年間同じクラスになる確率
-
複数のクラスで共通した関数を...
-
同じパッケージ、クラス名が含...
-
A・B・Cクラスとは?
-
自作のクラスファイルがインポ...
-
ATLとMFCの違いは何でしょうか?
-
eclipse でクラスに色
-
コンボボックスのマウスホイー...
-
UMLのクラス図はmain()も含むん...
おすすめ情報