C++静态成员函数的用法(附带实例)
C++ 程序中,在成员函数前添加 static 关键字,即可为类定义一个静态成员函数。例如:
静态成员函数只能访问静态成员变量,不能访问普通成员变量。例如:
静态成员函数不能定义为 const 类型,即静态成员函数末尾不能使用 const 关键字。例如:
定义静态成员函数时,如果函数实现代码在类体外,则不能使用 static 关键字。例如,下面的函数定义是非法的:
上述代码如果去掉 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; }