0

Visual C++ 2008 を使用しています。初めて、C# からのクロス オーバーを実験していて、それを試してみたかったのです。スマートブロックやいくつかの色などのいくつかのことを除いて、基本設定はあまり変更していません。私は C++ の知識がレベル 0 であるため、私が行ったすべての Google 操作は私の頭の中にあります。

問題のパート 1 私の問題は、最初の Windows フォーム プロジェクトを作成したところです。ダブルクリックしてこのようなものに入ると、インテリセンスはメンバーをリストしませんか?

private: System::Void executeDocumentationCmd_Click(System::Object^  sender, System::EventArgs^  e) 
{
this. NOTHING POPS UP?
}

と入力するとMessageBox::、intellisense for がポップアップしShowます。これは正常ですか?基本を学んでいるので、利用可能なtxtボックスとメンバーをリストするのに役立ちますが、C#インテリセンスのようにはなりません。

含めましstdafx.hた。オンライン ヘルプに従って ncb ファイルを削除し、再起動しましたが、何もありませんでした。追加ヘッダー?

問題のパート 2 : C# 編集のようにリアルタイム コーディングに下線付きのエラーがない。これは C++ Express の機能 (コンパイル前のエラー チェック) ですか? 間違った情報を入力したため、警告やエラーが表示されません。

4

3 に答える 3

2

thisC++ では、->notによって逆参照されるポインターです。.

また、VS2008 の C++ のインテリセンスは、C# ほど役に立ちません。これには、エラー チェックがないことも含まれます。VS2010 では、C++ のインライン エラー チェックが導入されます。

C# と C++ の間には、注意が必要な非常に大きな違いがいくつかあります。これは大きなトピックなので、ここの投稿でそれらを要約できるとは思いませんが、2 つの重要な点は、ガベージ コレクション (deleteキーワードを参照) とポインターの欠如です。ポインターは C# に存在しますが、コード ブロックでのみ使用できますがunsafe、C++ ではポインターがほぼ王様です。学習に役立つ本に投資することもできます。

于 2009-04-08T14:29:25.560 に答える
1

参考までに、コード スニペットによると、実際には C++ ではなく、別の言語である C++/CLI を使用しています。

于 2009-04-08T16:14:07.913 に答える
0

少し歴史を振り返ると、C++ は C と互換性を持つように特別に設計されていましたが、C# と Java は互換性がありませんでした。結果の 1 つは、C++ は解析しにくいため、C# よりも C++ で IntelliSense を機能させるのが難しいということです。不安定だと思いますが、VS 2010 で改善されることを願っています。

また、C と C++ では、ほとんどの言語よりも変数とポインターの違いがはるかに大きくなっています。私は C# には詳しくありませんが、Java や Common Lisp などの言語では、ほとんどすべてがポインターであるため、特別な表記法はありません。私が Pascal を扱っていたとき、ポインタを使って行われたことはほとんどありませんでした。C と C++ は、私が使用した中で最も混乱する可能性のある言語です。また、ポインター演算も可能であり、これが非常に多くのバグの原因となっています。

C++ に滑り込もうとするだけの言語が本当に良い言語だとは思いません。C++ に興味がある限り、新しい言語であるかのように学習することをお勧めします。良い現代的な紹介を入手してください。

于 2009-04-08T14:44:33.433 に答える