1

我在 C++ 中使用此代码在我的其他应用程序中使用一个类(我之前定义的)。

#include class_name ;

如何定义可以在所有应用程序中使用的公共类?谢谢

4

5 回答 5

3

要从外部程序集访问类,您必须添加对外部程序集的引用。public这将允许您从外部程序集中访问类。

要从当前范围之外指定 a classnamespace您必须在类的类型说明符前面加上其namespace名称。为了避免这种开销,您可以namespace使用using指令“包含”外部。

一个程序集中可以存在多个命名空间。


组装果实:

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

每个类都在命名空间下创建

namespace abc{

public MyClass{
//functionality
}

}

要在不同的应用程序上使用您的类,您需要导入命名空间。

using abc;

public class usingClass{

MyClass obj = new MyClass();

}
于 2012-09-28T16:22:31.140 回答
0

您必须包括如下命名空间,并且如果在另一个项目中还添加任何引用。

using class_namespace;
于 2012-09-28T16:07:19.083 回答
0

如果另一个类是publicinternal(如果它们是内部的,则在同一个程序集中),在同一个项目中,并且具有相同的命名空间,那么您根本不需要做任何事情。您将能够通过使用它的类名来引用另一个类。

如果它们在不同的命名空间中,那么您可以使用using语句(在文件顶部)将另一个命名空间带入范围,或者您可以在OuterNamespace.InnerNamespace.ClassName每次使用该类时使用完全限定名称(即)引用另一个类. (几乎没有人这样做,每个人都只使用using语句,因为它们更方便。)

如果该类完全在另一个项目中,那么您将需要通过 Visual Studio 添加对该类的引用。如果您正在创建一个旨在被其他项目引用的项目,那么它的项目类型应该是“类库”。

于 2012-09-28T16:16:42.157 回答