gpt4 book ai didi

c++ - C++ 是否提供了一种无需范围解析运算符即可访问类中类的方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:17:02 25 4
gpt4 key购买 nike

C++ 是否提供了一种方法来声明具有类中类类型的对象(例如下面示例中的 foo_class::bar_class_in_class),而无需使用范围解析运算符,如它对命名空间中的类起作用(例如下面示例中的 foo_namespace::bar_class_in_namespace)?

  namespace foo_namespace {
class bar_class_in_namespace {
};

}

class foo_class {
public:
class bar_class_in_class {
};
};


int main() {
using namespace foo_namespace;
bar_class_in_namespace bar_0;

// Can I access bar_class_in_class without having to use the
// the scope resolution operator?
foo_class::bar_class_in_class bar_1;
}

本题同Can we alias a class name the way we do in namespaces? , 这个问题明确询问类中类的细微差别。

最佳答案

是的,C++ 提供了一种访问类型的方法。您需要的是类型别名。使用

using bar_class_in_class = foo_class::bar_class_in_class;

允许您使用 bar_class_in_class 代替 foo_class::bar_class_in_class。这是有范围的,所以如果你在 main 中执行它,你只能在 main

中看到别名

请注意,您还可以“更改内部类型的名称”

using my_type = foo_class::bar_class_in_class;

做的事情和上面一样,但是你会使用 my_type 作为类型名称。这可能是一个很好的便利。

关于c++ - C++ 是否提供了一种无需范围解析运算符即可访问类中类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55168044/

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