在C ++中,我可以在声明成员函数的另一个类中定义一个类。后来,当我定义这些声明的定义时,有没有办法不继续重复包含类。例如,我的标题可能如下所示:
class Outer {
class Inner {
void one();
void two();
void three();
};
};
然后,我的定义可能如下所示:
void Outer::Inner::one() { ... }
void Outer::Inner::two() { ... }
void Outer::Inner::three() { ... }
有没有某种方法可以省略Outer而不在声明点定义,也许通过使用命名空间成为:
void Inner::one() { ... }
void Inner::two() { ... }
void Inner::three() { ... }
答案 0 :(得分:3)
我没有特别尝试过这个(没有编译器),但我猜想如果你正在使用内部类,比如:: iterator,你可能会这样做:
using outerclass::innerclass;
然后执行:
innerclass::foo() { /* def */ }
假设在外部类的范围内没有与内部类同名的全局。
此外,你绝对可以使用宏,并且可能使用typedef(不确定,但值得一试)。
我会说这一切都会让你的代码不那么易读,不管你是怎么解决它的,这都是个坏主意。