发布日期:2015-12-22 17:10 来源: 标签: 编程语言 C++教程 C++函数 C++中static
本章我们主要学习C++中static成员函数的相关知识及使用方法,下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
在类的内部声明函数时需要添加static关键字,但是在类外部定义函数时就不需要了。因为static 成员是类的组成部分但不是任何对象的组成部分,所以有以下几个特点:
1) static 函数没有 this 指针
2) static 成员函数不能被声明为 const (将成员函数声明为 const 就是承诺不会修改该函数所属的对象)
3) static 成员函数也不能被声明为虚函数
4 static 数据成员 
static 数据成员可以声明为任意类型,可以是常量、引用、数组、类类型,等等。
static 数据成员必须在类定义体的外部定义(正好一次),并且应该在定义时进行初始化。
建议:定义在类的源文件中名,即与类的非内联函数的定义同一个文件中。注意,定义时也要带上类类型+"::"
double Account::interestRate = 0.035; 
5 特殊的静态常量整型成员 
静态常量整型数据成员可以直接在类的定义体中进行初始化,例如:
static const int period = 30; 
当然char 可以转换成整形,也是可以的,   static const char bkground = '#';
6 其他
(1)static 数据成员的类型可以是该成员所属的类类型。非 static 成员只能是自身类对象的指针或引用 
class Screen 
{
    public:
         // ...
    private:
    static Screen src1; // ok
    Screen *src2;       // ok
    Screen src3;        // error
}; 
(2)非 static 数据成员不能用作默认实参,static 数据成员可用作默认实参
class Screen 
{
    public:
       Screen& clear(char = bkground);
    private:
      static const char bkground = '#';//static const整形变量可以在类内部初始化。
};

相关评论

专题信息
    C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性! 本教程从基础讲解了C++语言,希望对大家有所帮助,望多多支持中国站长网络学院。