错误、漏洞、问题 - 页 1926

 
fxsaber:

如果将来只有只读操作的话。

编译器不知道(也不应该知道)未来的操作是什么(否则编译时间将是几小时而不是几分钟)。
 
A100:
编译器不知道(也不应该知道)未来的操作是什么(否则编译时间将是几小时而不是几分钟)。
void OnStart()
{
  int a; // variable 'a' not used
}
 
fxsaber:

编译器到了第1行--给出了一个警告--因为它没有分析进一步的操作,而<a>变量可以在以后被初始化。而如果

 const int a;

它将产生一个错误,因为它不能在以后被初始化(编译器不分析进一步的操作,不知道,例如,它根本不会被进一步使用)。

一切都是合乎逻辑的,不取决于主观的偏好

 
A100:

编译器到了第1行--给出了一个警告--因为它没有分析进一步的操作,而<a>变量可以在以后被初始化。而如果

它将产生一个错误,因为它以后不能被初始化(编译器不分析进一步的操作,不知道,例如,它根本不会被进一步使用)。

一切都是合乎逻辑的,不取决于主观的偏好

这是不合逻辑的,为什么你不能使用一个垃圾的const-variable。

 
fxsaber:

为什么你不能使用一个垃圾的常量变量,这没有意义。

提供一个这种用途的例子

         const int a;
可以按惯例写成
        int i;
        const int a = i;
        Print( a ) //случайное число... и что дальше?
 
A100:

举个例子说明这种用途

通过引用转移到一个函数,并检索出一个值。
 
Комбинатор:
通过引用将其传递给一个函数并获得其值。
它在代码中是什么样子的?
 
A100:
它在代码中是什么样子的?
void f(int& i)
{
   i = 5;
}

{
   int i;
   f(i);
}
 
Комбинатор:
在哪里?(或者你没有读到最后一页?)
 

实际上,我反对任何形式的未初始化变量,并在编译器层面禁止它们,我只是举了一个例子。

A100:
哪儿有 "const"?(或者你没有读到最后一页?)
是的,我做到了,但我一定是没有注意到。