|
在嵌套类中声明的成员函数可在文件范围中定义。 前面的示例可能已编写:
// member_functions_in_nested_classes.cpp
class BufferedIO
{
public:
enum IOError { None, Access, General };
class BufferedInput
{
public:
int read(); // Declare but do not define member
int good(); // functions read and good.
private:
IOError _inputerror;
};
class BufferedOutput
{
// Member list.
};
};
// Define member functions read and good in
// file scope.
int BufferedIO::BufferedInput::read()
{
return(1);
}
int BufferedIO::BufferedInput::good()
{
return _inputerror == None;
}
int main()
{
}
在前面的示例中,qualified-type-name 语法用于声明函数名称。 声明:
BufferedIO::BufferedInput::read()
表示“作为 BufferedIO 类范围内的 BufferedInput 类的成员的 read 函数”。由于此声明使用 qualified-type-name 语法,因此以下形式的构造是可能的:
typedef BufferedIO::BufferedInput BIO_INPUT;
int BIO_INPUT::read()
上述声明与前一个声明等效,但它使用了 typedef 名称来代替类名称。
|
|