1

このコードを C++ で使用して、他のアプリで (以前に定義した) クラスを使用しました。

#include class_name ;

すべてのアプリで使用できるパブリック クラスを定義するにはどうすればよいですか? ありがとう

4

5 に答える 5

3

外部アセンブリからクラスにアクセスするには、外部アセンブリへの参照を追加する必要があります。publicこれにより、外部アセンブリからクラスにアクセスできるようになります。

class現在のスコープ外から aを指定するにnamespaceは、クラスの型指定子の前にそのnamespace名前を付ける必要があります。このオーバーヘッドを回避するためnamespaceに、usingディレクティブで外部を「含める」ことができます。

複数の名前空間が 1 つのアセンブリ内に存在できます。


アセンブリ フルーツ:

namespace Common
{
    public class Strange
    {
       var mystery = new Mystery() // Won't compile, no reference to Mystery.
    }
}

namespace Fruit
{
    public class Orange
    {
    }
}

組立野菜:

参考文献 フルーツ

namespace Common
{
    public class Mystery
    {
    }
}

namespace Fungi
{
    public class Mushroom
    {
    }
}

namespace Vegetables
{
    using Common;

    public Class Carrot
    {
        var strange = new Strange() // Compiles correctly.
        var mystery = new Mystery() // Compiles correctly.
        var orange = new Orange() // Won't compile, what's an Orange?
        var orange = new Fruit.Orange() // Compiles correctly.
        var mushroom = new Mushroom() // Won't compile, what's a Mushroom?
        var mushroom = new Fungi.Mushroom() // Compiles correctly.
    }
}
于 2012-09-28T16:07:23.470 に答える
2

DLL ファイルにコンパイルするクラス ライブラリ プロジェクトを作成する必要があります。

その後、他のプロジェクトで参照を追加できます。

于 2012-09-28T16:06:40.180 に答える
0

他のクラスがpublicor internal(および内部の場合は同じアセンブリ内)であり、同じプロジェクト内にあり、同じ名前空間を持っている場合は、何もする必要はありません。クラス名を使用するだけで、他のクラスを参照できるようになります。

それらが異なる名前空間にある場合は、using(ファイルの先頭にある)ステートメントを使用して他の名前空間をスコープに入れるか、クラスをOuterNamespace.InnerNamespace.ClassName使用するたびに完全修飾名(つまり)を使用して他のクラスを参照できます。 。(ほとんど誰もしませんが、usingステートメントは非常に便利なので、誰もがステートメントを使用します。)

クラスが完全に別のプロジェクトにある場合は、VisualStudioを介してそのクラスへの参照を追加する必要があります。他のプロジェクトから参照されるように設計されたプロジェクトを作成する場合、そのプロジェクトタイプは「クラスライブラリ」である必要があります。

于 2012-09-28T16:16:42.157 に答える
0

以下のように名前空間を含め、別のプロジェクトの場合は参照を追加する必要があります。

using class_namespace;
于 2012-09-28T16:07:19.083 に答える
0

すべてのクラスは名前空間の下に作成されます

namespace abc{

public MyClass{
//functionality
}

}

クラスを別のアプリケーションで使用するには、名前空間をインポートする必要があります。

using abc;

public class usingClass{

MyClass obj = new MyClass();

}
于 2012-09-28T16:22:31.140 に答える