Visual C++ 2008で、新しいwindowsフォームアプリケーションを作成したら、Form1.hの上の方に
public ref class Form1 : public System::Windows::Forms::Form
という行がありました。これは開発環境に実装されている
System::Windows::Forms::Formクラスを継承し、Form1クラスを新たに作成しますという意味なのですよね?
このとき、2つ目のpublicは、継承の仕方、この場合結果的にはSystem::Windows::Forms::Formクラスに含まれるメンバの、private以外がそのまま受け継がれる、という事になりますよね?
それで、このref classというのは、ポインタみたいな意味でしょうか?refは書かないと別の継承方法になるのでしょうか?
また、最初のpublicはどういう意味なのでしょう?
もしかして、この2つについては、System::Windows::Forms::Formクラスを継承して新規フォームを作る場合の、定型みたいなものなのでしょうか?
No.1ベストアンサー
- 回答日時:
最初のpublicはこのプロジェクトにForm1クラスを公開するのに必要です
refは一般的なC++の構文にはありません
これは C++/CLIという特殊な環境で使う構文です
C++/CLIでは オブジェクトをポインタ扱いで使いますのでForm1クラスの実体をオブジェクトのを ^記号付で表します
Form1^ obj;
などといった宣言をします
一般的なC++のクラス宣言なら
public class Form1 : pulic System::Windows::Forms::Form
といった具合に記述します
Form1のオブジェクトを宣言する場合
Form1 obj, *pObj;
といった具合になります objは実体、pObjはポインタ といった具合です
なるほど!
^記号までつながりがあるとは驚きました。
ご丁寧にありがとうございます。
^記号といえば、メインプロジェクトファイルに
int main(array<System::String ^> ^args)
って書いてありましたが、このように右側の文字につく場合はどういう意味があるのでしょうか?
また、この()内全体はどういう意味なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- 弁護士・行政書士・司法書士・社会保険労務士 管理費滞納債務の特定承継人への承継 6 2022/04/02 16:59
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- Java java final 1 2022/06/10 22:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CMainFrameクラスの使い方
-
ボタンのオーナードローについて
-
(UWSC) 「#32770」の意味わかり...
-
MFCアプリのコマンドラインでパ...
-
クラスのアドレスを引数として...
-
C++ protectedにアクセス不可
-
派生クラスから基本クラスprote...
-
MFCのCListCtrlでスクロールを検出
-
C# 別プロジェクトのフォームを...
-
C++で継承元のクラスの代入演算...
-
ソケットを使った「非同期」通...
-
継承を重ねた場合のコストはど...
-
正規表現 [^/]+ の意味を教えて
-
既定のコンストラクタがない?
-
privateなメンバ関数をテストす...
-
FriendとPublicの違い。。。
-
ダイアログクラスのコントロー...
-
VB.NETでのEnumの使用について
-
MessageBoxを継承したい
-
MFC モードレスDlgについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
イベントにAddHandlerされてい...
-
クラスのアドレスを引数として...
-
ダイアログ表示時にチェックボ...
-
(UWSC) 「#32770」の意味わかり...
-
エディットコントロールのイベ...
-
エディットコントロールでEnter...
-
WindowsAPIのリストビューの...
-
CMainFrameクラスの使い方
-
DebugクラスとTraceクラスの違い
-
MessageBoxを継承したい
-
C++ protectedにアクセス不可
-
MFCアプリのコマンドラインでパ...
-
このコンパイルエラーの意味に...
-
MFCのドラッグ&ドロップについて
-
【ASP.NET】 独自で作成したク...
-
派生クラスから基本クラスprote...
-
ダイアログクラスのコントロー...
-
C#で通常のbuttonコントロール...
おすすめ情報