标签: const

在Delphi中将TDateTime声明为Const

据我所知,没有办法做到这一点,但我会问,以防其他人知道如何做到这一点.如何在Delphi中将日期声明为const?

我发现的唯一解决方案是使用数字等价物,这是一种难以维护,因为它不是人类可读的.

const
  Expire : TDateTime = 39895; // Is actually 3/23/2009
Run Code Online (Sandbox Code Playgroud)

我希望能做的是这样的:

const
  Expire : TDateTime = TDateTime ('3/23/2009');
Run Code Online (Sandbox Code Playgroud)

要么

const
  Expire : TDateTime = StrToDate('3/23/2009');
Run Code Online (Sandbox Code Playgroud)

所以让我知道这是一个功能请求,还是我错过了如何做到这一点(是的,我知道这似乎是一件奇怪的事情......)

delphi const date operator-overloading tdatetime

29
推荐指数
5
解决办法
9471
查看次数

在C++中初始化const字符串的静态const数组

我在初始化常量字符串的常量数组时遇到问题.

从week.h(仅显示相关部分):

class Week {
  private:
    static const char *const *days = { "mon", "tue", "wed", "thur",
                                       "fri", "sat", "sun" };
};
Run Code Online (Sandbox Code Playgroud)

当我编译时,我得到错误"标量初始化器中的多余元素".我试着把它变成const char**,认为我弄乱了第二个const位置,但是我得到了同样的错误.我究竟做错了什么?

c++ compiler-errors initialization const

29
推荐指数
2
解决办法
5万
查看次数

返回对vector成员变量的引用

我有一个向量作为类的成员,我想通过getVector()函数返回它的引用,以便以后能够修改它.是不是更好地练习函数getVector()为const?但是我在下面的代码中收到错误"在类型的绑定引用中删除了限定符...".应该修改什么?

class VectorHolder
{
public:
VectorHolder(const std::vector<int>&);
std::vector<int>& getVector() const;

private:
std::vector<int> myVector;

};

std::vector<int> &VectorHolder::getVector() const
{
return myVector;
}
Run Code Online (Sandbox Code Playgroud)

c++ const reference vector

29
推荐指数
2
解决办法
5万
查看次数

const指针有什么用(与指向const对象的指针相对)?

我经常使用const对象的指针,就像这样......

const int *p;
Run Code Online (Sandbox Code Playgroud)

这只是意味着您无法更改p指向的整数p.但是我也看到了const指针的引用,这样宣称......

int* const p;
Run Code Online (Sandbox Code Playgroud)

据我所知,这意味着指针变量本身是不变的 - 你可以改变它整天指向的整数,但你不能指出其他东西.

有什么可能的用途?

c c++ const

28
推荐指数
5
解决办法
1万
查看次数

为什么gcc不允许将const int作为case表达式?

我正在考虑这个问题,并开始考虑const ints与#defines,并意识到我实际上并不理解为什么编译器无法解决这个问题.有人可以解释为什么以下代码

const int FOO = 10;

int main(int argc, char** argv)
{
    switch(argc)
    {
        case FOO: { printf("foo\n"); }
        default:  { printf("default\n"); }
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是

error: case label does not reduce to an integer constant
Run Code Online (Sandbox Code Playgroud)

我阅读了ISO-C99规范,该规范在6.8.4.2.3中说明

每个case标签的表达式应为整数常量表达式,并且同一switch语句中的两个case常量表达式在转换后不应具有相同的值.

我理解为什么case表达式必须是常量,但不是为什么只有一个文字让编译器(gcc 4.2.1)满意.

c compiler-construction const objective-c

28
推荐指数
1
解决办法
8042
查看次数

我们可以通过指针改变用const定义的对象的值吗?

#include <stdio.h>
int main()
{
    const int a = 12;
    int *p;
    p = &a;
    *p = 70;
}
Run Code Online (Sandbox Code Playgroud)

它会起作用吗?

c const undefined-behavior

28
推荐指数
4
解决办法
3万
查看次数

为什么在C++中而不是在C中允许对const全局变量进行多重定义?

由于One Definition Rule,C或C++中不允许对全局变量进行多重定义.但是,在C++中,const全局变量可以在多个编译单元中定义而没有错误.这和C中的不一样.

为什么C++允许这样做而C不允许?与C相比,为什么const全局的使用和行为在C++中以这种方式与非const全局不同?关于const,C++和C的内容正在发生什么?

例如,这在C++中是允许的,但在C中是错误的:

// Foo.cpp
const int Foo = 99;

// Main.cpp
const int Foo = 99;
int main()
{
    cout << Foo << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这对C来说很好,但C++有问题:

// Foo.cpp
const int Foo = 99;

// Main.cpp
extern const int Foo;
int main()
{
    cout << Foo << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++ const one-definition-rule

28
推荐指数
3
解决办法
8618
查看次数

const volatile,在C++中注册volatile,static volatile

我想知道volatile关键字与register,conststatic关键字的不同用途.我不确定有什么影响,所以我想:

register volatile int T=10;
Run Code Online (Sandbox Code Playgroud)

建议编译器将T存储在寄存器中,并且可以从外部某处修改T的值(OS,硬件,另一个线程)

const volatile int T=10;
Run Code Online (Sandbox Code Playgroud)

程序本身不能修改T,但T可以在代码之外的某处修改.

static volatile int T=10;
Run Code Online (Sandbox Code Playgroud)

如果T是类的数据成员,则意味着类的所有对象具有相同的T值,并且可以从外部的某处修改T.如果T是文件中的全局变量,则其他文件(属于项目的一部分)中的源代码无法访问T,但可以从外部的某个位置访问T. 如果T是函数中的局部变量,一旦它被初始化,它将保留在内存中直到程序结束,并且可以从外部的某个地方进行修改.

我的想法是否正确,任何有经验的C++开发人员都可以提供一个示例,其中上述内容可能在实际应用程序中使用,或者它是非常罕见的?

c++ static const volatile

28
推荐指数
1
解决办法
2万
查看次数

使用if else声明在if/else之后使用`let`或`const`?

我不知道为什么,但如果我在声明中声明它们,我似乎无法调用letconst变量if/else.

if (withBorder) {
  const classes = `${styles.circularBorder} ${styles.dimensions} ${styles.circularPadding} row flex-items-xs-middle flex-items-xs-center`;
} else {
  const classes = `${styles.dimensions} ${styles.circularPadding} row flex-items-xs-middle flex-items-xs-center`;
}
return (
  <div className={classes}>
    {renderedResult}
  </div>
);
Run Code Online (Sandbox Code Playgroud)

如果我使用这个代码就说明了classes is not defined.

但是,如果我改变constvar类的定义,但我得到一个关于警告classes used outside of binding contextall var declarations must be at the top of the function scope

我怎么能解决这个问题?

javascript if-statement const let reactjs

28
推荐指数
4
解决办法
2万
查看次数

枚举类型中const说明符的功能是什么?

enum foo : const unsigned int
{
    F,
    S,
    T
};

void func()
{
    foo p;
    p = F;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码编译后,基础类型不是const类型吗?

c++ enums const language-lawyer c++11

28
推荐指数
1
解决办法
537
查看次数