D
解析:在c++中,有两种特殊的成员函数,即构造函数和析构函数。当对象被创建时,构造函数自动被调用。构造函数有一些独特的地方:函数的名字与类名相同,它也没有返回类型和返回值。当对象销毁时,会自动调用析构函数进行一些清理工作。与构造函数类似的是:析构函数也与类同名,但在名字前有一个“~”符号,析构函数也没有返回类型和返回值。但析构函数不带参数,不能重载,所以析构函数只有一个。为了实现对象的常量化,C++引入了const函数的概念。const函数不改变对象的数据成员,也不能调用非const函数。常量对象只能调用const函数;但构造函数和析构函数对这个规则例外,它们从不定义为常量成员,但可被常量对象调用(被自动调用)。在C++中,为了实现类的所有对象对一个或多个类成员的共享,可以定义静态数据成员和静态成员函数。一个类的静态数据成员仅创建和初始化一次,且在程序开始执行的时候创建,然后被该类的所有对象共享;而非静态的数据成员则随着对象的创建而多次创建和初始化。与静态数据成员类似,静态成员函数也是属于类的。静态成员函数仅能访问静态的数据成员,不能访问非静态的数据成员,也不能访问非静态的成员函数,这是由于静态的成员函数没有this指针。