我只需要在这个主题上进行一次复习,但我不能在网上找到答案。C++ - 类与命名空间
如果你调用一个类Dog
class Dog
{
public:
void Dog::woof()
{
return;
}
};
必备
Dog
开始与Dog::
内的每一个功能?这就是我一直这样做,但我想问的是任何情况不是这样的情况?如果我不把Dog::
这是否意味着它可以像使用Java的静态方法一样使用?防爆。Dog.woof();
代替myDogObj.woof();
请问,我们使用的是
::
运营商意味着Woof
是在Dog
命名空间,即使Dog
不是一个命名空间中的事实呢?如果这是真的,这是否意味着类自动创建自己作为命名空间?为什么我们把
Dog::
告诉C++,它是属于Dog
的方法,而张女士它是class Dog
内基本上是说了吗?这不是多余的吗?是否有任何可以在命名空间或嵌套命名空间内声明
Dog::woof
的情况?防爆。Park::Trail::Dog::woof() { return; }
你必须做的:
class Dog
{
public:
namespace Park
{
namespace Trail
{
void Dog::woof()
{
return;
}
}
}
};
最后一个例子是无稽之谈,你不能在类的名字空间*里面。 – molbdnilo
如果我要在类中声明'woof',那么在类的外部定义它,但是我把这个函数定义放在一个名称空间中呢?防爆。 '命名空间Park {void Dog :: woof(){return; }}' – Hatefiend
除非'Park'声明在'Park'命名空间中,否则它将不起作用。 Jus试试吧,你会看到的。 – Ceros