- 主题:这么操作不行么?
class Test
{
const int size = 5;
int arr[size];
}
只有把size 申明为static才行。
--
FROM 117.136.119.*
那为啥在main里面这么写就行?
【 在 foliver (Oliver) 的大作中提到: 】
: const仅仅代表在它上生存期内不可变,但它的初始化过程依然和普通变量一样。比如你的例子,它的初始值是在创建对象时决定的,可以初始化为任何值,你给5只是默认值。所以size的值在编译期是不可知的。
:
: 而static就是编译期间就进行初始化。
:
--
FROM 117.136.119.*
明白了,谢谢
【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】
: data member 是运行时的,你写成
:
: class Test
: {
--
FROM 101.80.114.*
谢谢,是个知识盲点。
【 在 foliver (Oliver) 的大作中提到: 】
: 写到函数不管main, 还是其他函数, 都是编译期间初始化,但是你写到函数参数里面就不行了。
:
:
: 【 在 grainbuds 的大作中提到: 】
--
FROM 101.80.114.*
好的,谢谢
【 在 here080 (hero080) 的大作中提到: 】
: 我还是会建议所有要当成编译期常量的东西都用constexpr修饰。
: 加上static有另一层好处,相当手动优化了这个类的大小。
: 【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】
: : 标 题: Re: 这么操作不行么?
--
FROM 101.80.114.*