2013-02-22 112 views
0

一个简单的问题:如果我有这样一行:foo :: bar :: baz()在C++中的含义是什么?

int foo::bar::baz() {... 

是如何解释的? baz()是函数名,但是'foo'是类还是名称空间? “酒吧”是一个类还是一个子类或者什么?

+3

你有3种可能性。 'foo'和'bar'都是类或结构体,'foo'是一个命名空间,'bar'是一个类或结构体,或者'foo'和'bar'都是命名空间。在前两个中,'baz()'是'bar'的成员。在后者中,这是一项免费功能。所以没有看到这些声明,你实在不知道它是哪一个。 – WhozCraig 2013-02-22 09:51:27

回答

7

foobar都可以是名称空间或类。

但是,如果foo是一个类,那么bar也是如此:您不能将一个名称空间嵌套在类的内部。

+0

谢谢,我怀疑这方面的一些事情。 :) – manabreak 2013-02-22 10:12:52

3

'bar'是一个嵌套的类或结构。它可以嵌套在名为'foo'的命名空间,类或结构中。

+4

'bar'也可以是一个命名空间。 – 2013-02-22 09:50:21

+1

@IvayloStrandjev只有当'foo'是一个命名空间。 – juanchopanza 2013-02-22 09:52:45

相关问题