是否在自定义命名空间下包含标头? 我在我的一个项目中使用第三方C++ LIB。不过,它们的lib没有定义自定义名称空间。所以,它们的所有功能就在那里。这没什么大不了的,但理想情况下他们应该使用名称空间

是否在自定义命名空间下包含标头? 我在我的一个项目中使用第三方C++ LIB。不过,它们的lib没有定义自定义名称空间。所以,它们的所有功能就在那里。这没什么大不了的,但理想情况下他们应该使用名称空间,c++,namespaces,C++,Namespaces,是否可以将其头文件包含在某种自定义伪名称空间下?这样,所有的函数都可以包含在命名空间中。你不能这样做,只要这会改变函数的名称(C++)。 链接器将名称空间的名称附加到函数中,因此链接将由于缺少函数而失败 对于Instance,请输入以下代码 namespace MyName { class MyNestedOne { public: void doNothing( ); }; }; 函数doNothing将具有以下名称doNothing@MyNe

是否可以将其头文件包含在某种自定义伪名称空间下?这样,所有的函数都可以包含在命名空间中。

你不能这样做,只要这会改变函数的名称(C++)。 链接器将名称空间的名称附加到函数中,因此链接将由于缺少函数而失败

对于Instance,请输入以下代码

namespace MyName
{
    class MyNestedOne
    {
    public:
        void doNothing( );
    };
};

函数doNothing将具有以下名称doNothing@MyNestedOne@ @ MyNeM@ @ /P>> P>你不能这样做,只要这将改变函数的名称(C++)。 链接器将名称空间的名称附加到函数中,因此链接将由于缺少函数而失败

对于Instance,请输入以下代码

namespace MyName
{
    class MyNestedOne
    {
    public:
        void doNothing( );
    };
};

函数doNothing将具有以下名称doNothing@MyNestedOne@MyName@@

正如您所说,如果它们位于名称空间中,则会更好。然而,这并不令人担忧


或者,如果您能够使用.dll而不是.lib,则可以动态绑定、使用并释放它。这样,您就不会在整个运行时都使用浮动函数。

正如您所说,如果它们位于名称空间中,则效果会更好。然而,这并不令人担忧


或者,如果您能够使用.dll而不是.lib,则可以动态绑定、使用并释放它。这样,您就不会在整个运行时都使用浮动函数。

是否有单独的实现文件,或者只是库头?实现也在那里,但是如果它意味着编辑它们的代码,我想我宁愿不使用名称空间而直接使用它。因为
#include
实际上是复制粘贴,您可以使用
名称空间something{#include“header”}
,但是如果有其他文件
包含“header”
,并且没有将
名称空间something{}
放在其周围(如实现文件),则这将不起作用。因此,手动编辑所有文件真的没有办法。是有单独的实现文件,还是只有库头?实现也在那里,但如果它意味着编辑它们的代码,我想我宁愿不使用名称空间而直接使用它。既然
#include
实际上是复制粘贴,您可以使用
名称空间something{#include“header”}
,但是如果有其他文件
包含“header”
,并且没有将
名称空间something{}
放在其周围(如实现文件),则这将不起作用。所以真的没有办法手动编辑所有的文件。