C++语言程序设计

例如：
int fork (void); // 全局fork
class Process {
int fork (void);
//...
};
成员函数fork隐藏了全局函数fork，前者能通过单目域运算符调用后者：
int Process::fork (void)
{
int pid = ::fork(); // 使用全局fork
//...
}
下面举一个嵌套类的例子。

| 例10-13

class Rectangle {
public:
Rectangle (int, int, int, int);
//..
private:
class Point {
public:
Point (int, int);
private:
int x, y;
};
Point topLeft, botRight;
};

类Point嵌套在Rectangle类中，Point成员函数可定义为内联的，也可在全局作用域中，但后者对成员函数名需要更多的限制，例如：
Rectangle::Point::Point (int x, int y)
{
//...
}
同样，在类域外访问嵌套类需要限制类名，例如：
Rectangle::Point pt(1,1);
下面我们再看一个局部类的例子：

| 例10-14

void Render (Image &image)
{
class ColorTable {
public:
ColorTable(void) { /* ... */ }
AddEntry(int r, int g, int b) { /* ... */ }
//...
};

ColorTable colors;
//...
}

类ColorTable是在函数Render中的局部类。与嵌套类不同的是：局部类不能在其局部作用域外访问，例如：
ColorTable ct; // 非法，没有定义ColorTable类!
局部类必须完全定义在局部作用域内。所以，它的所有成员函数必须是内联的，这就决定了局部类的成员函数都是很简单的。