首页 > 编程笔记 > C++笔记 阅读:6

C++静态成员函数的用法(附带实例)

C++ 程序中,在成员函数前添加 static 关键字,即可为类定义一个静态成员函数。例如:
static void OutputInfo();  // 定义静态成员函数 OutputInfo()

静态成员函数只能访问静态成员变量,不能访问普通成员变量。例如:
class CBook  // 定义CBook类
{
public:
    static unsigned int m_Price;  // 定义静态成员变量 m_Price
    int m_Pages;                  // 定义普通成员变量 m_Pages

    static void OutputInfo()      // 定义静态成员函数 OutputInfo()
    {
        cout << m_Price << endl;  // 正确访问,静态成员函数可访问静态成员变量
        cout << m_Pages << endl;  // 非法访问,静态成员函数不能访问普通成员变量
    }
};

静态成员函数不能定义为 const 类型,即静态成员函数末尾不能使用 const 关键字。例如:
static void OutputInfo() const;  // 错误定义,静态成员函数不能使用 const 关键字

定义静态成员函数时,如果函数实现代码在类体外,则不能使用 static 关键字。例如,下面的函数定义是非法的:
static void CBook::OutputInfo()  // 错误定义,类体外不能使用 static 关键字
{
    cout << m_Price << endl;
}

上述代码如果去掉 static 关键字,则是正确的定义形式。例如:
void CBook::OutputInfo()  // 正确定义
{
    cout << m_Price << endl;
}

相关文章