- ベストアンサー
クラス名&メンバ関数名とは何ですか?
- Windowsのタスクから起動し、シリアル接続した組み込み用マイコン(PIC)に、コマンドを送るプログラムを作るために、C++を学習中です。
- C++におけるクラス名&メンバ関数名の記述について、理解できない部分があります。
- 質問のタイトル「クラス名&メンバ関数名/クラス名 & メンバ関数名」の意味について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> COMPort (const COMPort &); はコンストラクタ(コピーコンストラクタ)の宣言 > COMPort& operator= (const COMPort &); は代入演算子の宣言です。 これらの宣言をprivateで行っているということは コピーコンストラクタや代入演算子を使用できないようにしていると言うことです。 オブジェクト(インスタンス)のコピーを禁止するための記述だと思われます。 C++編(言語解説) 第16章 コピーコンストラクタ http://www.geocities.jp/ky_webid/cpp/language/016.html クラスのコピー禁止のテクニックについては 以下のページの「コピーの禁止」に少し書かれてました。 Language C++ Seminar/Chapter 2/Section 4 http://www.futatsugi.net/develop/cpp/cpp00204.html
その他の回答 (1)
- Werner
- ベストアンサー率53% (395/735)
その&は参照です。 C++の勉強してるならどこかで目にしていてもおかしくなさそうなものですが。 とりあえず"C++ 参照"で検索して見つけたページを載せておきます。 http://www.geocities.jp/ky_webid/cpp/language/015.html なお、スペースはあってもなくても同じ。
お礼
深夜にもかかわらず、早速のご回答ありがとうございました。VBでいうところのByRefなのですね。(VBのクラスなら意識しないで良い部分の様な。)ご紹介いただいたサイトは知っていたのですが、つまみ食いの勉強でそこまでたどり着いていませんでした。Object自体への参照を戻す関数であるという事は理解できました。 下記については相変わらず理解不能ですので、意味を教えていただけないでしょうか。よろしくお願いします。 >1.COMPortという名前をつけたクラスのヘッダーファイルに >private: >COMPort (const COMPort &); >COMPort& operator= (const COMPort &);
お礼
目的は理解できた様な気がします。ポインタをメンバーに持つクラスを単純に複写、代入してしまうと、複数のクラスから同じアドレスにアクセスしてしまう事になるのを防止するためというところでしょうか。VBに比べるとコードが読みにくいのと(c/c++に慣れた人はVBのコードがうるさい等と思うのかも)、選択肢の多さに戸惑っておりますが、何とかモノにしたいと思います。一旦閉じて勉強させていただきます。 ありがとうございました。