初始化静态常量如下:
private:
const static double conv_alpha = 1.0/255.0;
4 个解决方案
#1
这是C++98/03的规则,因为类定义只是一个框架,不是实例,所以C++98/03要求在构造函数或者成员定义中初始化,静态整形const数据成员只是个特例。
但这一点在C++11中有了变化,C++11允许就地初始化了。
但这一点在C++11中有了变化,C++11允许就地初始化了。
#2
就是说C++类定义的静态常量数据成员不能在类中初始化,而整形只是这个规则下的一个特例,而C++本身并没有给出制定这种规则的原因,是这样吗?以前习惯了Java的编程,对这种要求感觉很难理解。。
#3
这就觉得难理解啊?
你一定得暂时忘记java带来的各种习惯,否则,思维风暴才刚刚冒了个头,你有的是时间去享受C++各种复杂特性。
你一定得暂时忘记java带来的各种习惯,否则,思维风暴才刚刚冒了个头,你有的是时间去享受C++各种复杂特性。
#4
这是C++98的规定,没什么需要解释的。
C++11下成员变量也可以在类中初始化了。
#1
这是C++98/03的规则,因为类定义只是一个框架,不是实例,所以C++98/03要求在构造函数或者成员定义中初始化,静态整形const数据成员只是个特例。
但这一点在C++11中有了变化,C++11允许就地初始化了。
但这一点在C++11中有了变化,C++11允许就地初始化了。
#2
这是C++98/03的规则,因为类定义只是一个框架,不是实例,所以C++98/03要求在构造函数或者成员定义中初始化,静态整形const数据成员只是个特例。
但这一点在C++11中有了变化,C++11允许就地初始化了。
就是说C++类定义的静态常量数据成员不能在类中初始化,而整形只是这个规则下的一个特例,而C++本身并没有给出制定这种规则的原因,是这样吗?以前习惯了Java的编程,对这种要求感觉很难理解。。
#3
这就觉得难理解啊?
你一定得暂时忘记java带来的各种习惯,否则,思维风暴才刚刚冒了个头,你有的是时间去享受C++各种复杂特性。
你一定得暂时忘记java带来的各种习惯,否则,思维风暴才刚刚冒了个头,你有的是时间去享受C++各种复杂特性。
#4
这是C++98/03的规则,因为类定义只是一个框架,不是实例,所以C++98/03要求在构造函数或者成员定义中初始化,静态整形const数据成员只是个特例。
但这一点在C++11中有了变化,C++11允许就地初始化了。
就是说C++类定义的静态常量数据成员不能在类中初始化,而整形只是这个规则下的一个特例,而C++本身并没有给出制定这种规则的原因,是这样吗?以前习惯了Java的编程,对这种要求感觉很难理解。。
这是C++98的规定,没什么需要解释的。
C++11下成员变量也可以在类中初始化了。