[英]Does C++ provide a way to access a class within a class without the scope resolution operator?
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;
}
這個問題與我們在命名空間中的方式別名一樣可以嗎? ,這個問題明確地詢問了一個班級中的一個課程的細微差別。
是的,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
作為類型名稱。 這可以是一個很好的方便。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.