3

私はちょうど今、C# から C++/CLR に「移行」しました。まず、すべてのクラスの宣言を 2 回 (.h と .cpp に) 書かなければならないことに腹を立てました。次に、コードをhファイルにも配置できることがわかりました-少なくともコンパイルされます。さて、クラスのすべての cpp を削除しましたが、h ファイルで作業するときに VS が Intellisense を提供しないことに気付きました。

コードを hfiles に配置するべきではないと思います (コードが他のプロジェクトで確実に再利用されることはありません) が、2 つの場所ですべてのメソッド宣言を調整するのはひどいと思います... さらに、前後に切り替える必要があります私のメソッドなどの修飾子を確認するには、C#のようにすべてが1か所にあるわけではありません(長所と短所があります)。

申し訳ありませんが、これは初心者の質問ですが、hfiles のインテリセンスを有効にする可能性がないことを確認したかっただけです。または、少なくとも、私が完全に間違った道を進んでいることを知るために...

ありがとう、デビッド

4

2 に答える 2

1

.h ファイルには宣言が含まれている必要があります。あなたの .cpp ファイル、定義。

次に例を示します。

bh

#ifndef B_H    
#define B_H

    class B
    {
      public:
         int foo();
         void Set(int x);

      private
         int data_;
    };

#endif

b.cpp

#include <stream>
#include "b.h"

int B::foo()
{
   std::cout << "data value " << data_;
   return data_;
}

void B::Set(int x)
{
   data_ = x;
}

タイプ B のオブジェクトを使用する場所では、#include bh を使用します 実装は b.cpp のみです これを行うと、インテリセンスが機能するはずです

于 2010-03-16T17:08:12.080 に答える