Bootstrap

C++中重构函数声明定义与static变量使用方法

1、重构函数
(1)若重构函数无返回值,声明时连void都不能加上
(2)在类中就要定义重构函数
析构函数也是如此,如下

//正确用法 class Data { public: Data() { } }; //错误用法1 class Data { public: Data(); }; //错误用法2 class Data { public: void Data(); }; //错误用法3 class Data { public: void Data() { } };

2、static变量
(1)static变量一定要初始化,在成员函数或重构函数中初始化均易出错,在类的结尾处初始化static变量是一种较好的方法

class Date { private: static int defaultDate; public: void setDefaultDate(int dat); void printDefaultDate(); }; //在类的结尾初始化static变量 int Date::defaultDate = 0;

(2)用类定义两个对象,两个对象中的static变量均为同一存储空间
(There is exactly one copy of a static member instead of one copy per object-10.2.4-the c++ programming language)

Date date1, date2; date1.setDefaultDate(10);//将defaultDate赋值为10 date2.setDefaultDate(60);//将defaultDate赋值为60 //此时无论是date1还是date2中的defaultDate值都是60, //static变量的用法类似全局变量,注意一定要初始化

上面两个成员函数

void Date::setDefaultDate(int dat) {//改变static变量的值 Date::defaultDate = dat; } void Date::printDefaultDate() {//显示static变量的值 std::cout<<Date::defaultDate<<std::endl; }

参考、扩展阅读:

[1] http://ticktick.blog.51cto.com/823160/194307

;