gpt4 book ai didi

C++: "Class namespaces"?

转载 作者:IT老高 更新时间:2023-10-28 23:17:38 27 4
gpt4 key购买 nike

如果在 C++ 中我有一个类 longUnderstandableName。对于那个类,我有一个包含其方法声明的头文件。在类的源文件中,我不得不写longUnderstandableName::MethodAlongUnderstandableName::MethodB等等,无处不在。

我能否以某种方式使用命名空间或其他东西,这样我就可以只在类源文件中编写 MethodAMethodB 了吗?

最佳答案

typedef longUnderstandableName sn;

然后你可以定义方法为

void sn::MethodA() {}
void sn::MethodB() {}

并将它们用作

sn::MethodA();
sn::MethodB();

这仅适用于 longUnderstandableName是一个类的名称。即使该类被深深嵌入到其他命名空间中,它也能正常工作。

如果 longUnderstandableName是命名空间的名称,那么在你要使用方法的命名空间(或源文件)中,可以写

using namespace longUnderstandableName;

然后调用类似的方法

MethodA();
MethodB();

您应该注意不要使用 using namespace foo;在头文件中,因为它会污染每个 .cpp我们的文件 #include将头文件放入,但是使用 using namespace foo;.cpp 的顶部文件绝对是允许和鼓励的。

关于C++: "Class namespaces"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4065563/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com