老师好!在学习过本节课程后,我有一些思考以及疑惑。
疑惑一:为何必须在全局范围内声明静态非常量属性,而在声明之前GetInstance()函数不能使用它,即便是加上域运算符::也依然不能使用?
思考:在C++中,声明、定义、初始化是三个不同的概念,声明是定义的前提,定义是使用(包括初始化)的前提;对于静态非常量属性,声明与定义是分离的(类似于C语言中用extern修饰的变量),而这种现象并不常见(通常,我们在全局范围或者函数作用域内声明一个整形变量,即便不对它进行赋值,它也依然完成了定义操作,能够被使用,即声明包含了定义过程)。
疑惑二:假如GetInstance返回的类型是const类型,那么单例模式下,属性该如何更改?
思考:或许需要有一种方法,获得非const类型的对象,否则其内部属性将永远无法更改。
请老师进行批评指正。