
No.4ベストアンサー
- 回答日時:
簡単にいうと^(ハットマーク)は実体がヒープに確保されるという意味です。
他の方の指摘の通り、これはC++/CLIと呼ばれる言語でC++で.NET Frameworkを
利用するために拡張した言語です。
.NET Frameworkのクラスはガベージコレクションで管理されている為
C++のクラスとは別に管理する必要があります。その為
^(ハットマーク)をつける事により区別しています。
ちなみにC++マネージ拡張とC++/CLIは違います。
2003以前の仕様をC++マネージ拡張と言い
2005以降のものをC++/CLIと言います。
System::Stringはスタックに置くことは出来ないので
System::String^ msg;
となります。
System::Drawing::Color等は
スタックに置くこともヒープに置くことも可能です。
System::Drawing::Color^ col1 = gcnew System::Drawing::Color();
System::Drawing::Color col2;
int test1 = col1->R;
int test2 = col2.R;
C++/CLIの参考書としては
中 博俊著 「実践 C++/CLI 極めるための基礎と実用テクニック」
がありますが、
まずC/C++を理解していることが前提になっていますので
もしC/C++の理解に不安があるようなら先に勉強した方が良いでしょう。
有名な書籍だと「独習C」と「独習C++」があります。
前述の通りC++/CLIは.NET Frameworkを使うためのものですが
.NET Frameworkを使いたいのであればC#の方が良いと思います。
No.3
- 回答日時:
StringクラスってことはC++マネージ拡張かな?
C++マネージ拡張は、.NETフレームワークにおけるC++の拡張仕様で、C++/CLIとも言います。
私もC++/CLIには詳しくないので、String^が何を意味するかは分かりません。
少なくともTurboCからC++/CLIは間を飛ばしすぎだと思います。
C言語が理解できているのなら、まずC++を勉強されてはいかがでしょうか?オブジェクト指向が分からないとVC++2005は使いこなせません。
その上で、WindowsAPIやMFCなどのWindowsアプリを書く勉強をされたほうが良いと思います。さらにその先でC++/CLIに行けばよろしいかと。
C++の推薦本としては、「明解C++」を推薦します。
http://www.amazon.co.jp/%E6%98%8E%E8%A7%A3-C-%E6 …
ざっと、VC++の機能を参照できる本としては、「Visual C++.NET逆引き大全500の極意」なんかどうでしょうか?
http://www.amazon.co.jp/Visual-NET%E9%80%86%E5%B …
No.2
- 回答日時:
> String^ msg = "テスト";
> は、
> char msg[] = "テスト";
> と同じ意味でしょうか?
違います。
> String^の^自体が何を意味しているのか、わかりません。
> TurboCからC言語は殆ど使っていませんので、戸惑っています。
この構文はC言語のものではないので当然です。
C++/CLIについて調べてみるとよいでしょう。
名前こそ似ていますが、C++とC++/CLIは別の言語です。PL/IとPL/SQLほどは違わないという程度に考えてください。
参考URL:http://vene.wankuma.com/ecma372/StartingState.aspx
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
確定申告しなかった・無申告の人をどうやって見つけるのか元国税調査官に聞いてみた
無申告の方などを対象に税務調査を行う国税局の元税務調査官さんに、どう無申告を探すのか聞いてきました。
-
【C++/CLI】int型からString型への変換
C言語・C++・C#
-
C++/CLIでネイティブの構造体を使用したい
C言語・C++・C#
-
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
4
WaitForSingleObjectの使い方について
C言語・C++・C#
-
5
【C++/CLI.NET】コンボボックスの値の設定・取得
C言語・C++・C#
-
6
std::wstringのメモリリークについて教えてださい
C言語・C++・C#
-
7
newしないオブジェクトについて
C言語・C++・C#
-
8
c++,ある関数のクラスから別のクラスの関数を呼ぶ
C言語・C++・C#
-
9
charからLPTSTRへの変換方法
C言語・C++・C#
-
10
C++/CLIにて、System.String^型からChar*への変換。または、fopen_s以外のファイル出力方法
C言語・C++・C#
-
11
C ファイル出力で、フォルダがない場合でも作成する方法
C言語・C++・C#
-
12
ファイルやディレクトリの存在確認を行う方法
C言語・C++・C#
-
13
「fatal error C1189」を回避するには?
C言語・C++・C#
-
14
外部依存関係について
C言語・C++・C#
-
15
0除算して、落ちるプログラムと落ちないプログラム
C言語・C++・C#
-
16
CString から LPCTSTRの型に変換
C言語・C++・C#
-
17
画面を強制的に再描画させる方法
C言語・C++・C#
-
18
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
19
C++とVC++の違いについて
C言語・C++・C#
-
20
ハンドルはポインタか
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
VC++とVC#の違いを教えて下さい
-
5
C言語で自動販売機のプログラ...
-
6
VBAとvisual basicの違い
-
7
python urlopen error について...
-
8
生年月日(yyyy/MM/dd) → 年齢...
-
9
cでなぜguiアプリが作成出来る...
-
10
IPアドレス、サブネットマスク...
-
11
gcc に mktemp 危険と怒られ...
-
12
自作ソフトの作り方
-
13
OpenOffice.org BaseはAccessの...
-
14
プログラマーで「使えない人」...
-
15
システムコールと標準ライブラ...
-
16
VB.NET とドットNET(.NET...
-
17
【VC++】MFC、C++/CLI(CLR)、...
-
18
C++とVC++の違いについて
-
19
[ADO]と[ADO.NET]の違い
-
20
[DirectX]SDK直叩き or 既存の...
おすすめ情報
公式facebook
公式twitter