标签: const

C#中私有const和私有只读变量之间有区别吗?

在C#中使用private const变量或private static readonly变量之间是否有区别(除了必须分配const编译时表达式)?

由于它们都是私有的,因此没有与其他库的链接.它会有什么不同吗?例如,它可以产生性能差异吗?实习字符串?有什么相似的吗?

c# const readonly

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

重复调用的函数中的静态常量与常量

我只是想知道如何

void test()
{
   const static int ABC = 12;
   cout << ABC;
}
Run Code Online (Sandbox Code Playgroud)

不同于

void test()
{
   const int ABC = 12;
   cout << ABC;
}
Run Code Online (Sandbox Code Playgroud)

如果在程序执行时重复调用此函数?我的意思是,有任何性能差异吗?或者是否有理由为什么你应该更喜欢一个?

c++ static const

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

常量联合对象有什么用?

如果我创建一个const联合对象(例如在下面的代码中),那么就不能完成成员赋值.那么在任何情况下都有使用const联合对象吗?

union un
{
    int i;
    float f;
    char c;
};
const union un a; 
/// ! a.i = 10; error.
Run Code Online (Sandbox Code Playgroud)

c c++ const unions

31
推荐指数
2
解决办法
3540
查看次数

具有延迟初始化的C++ const getter方法

为延迟初始化的成员变量实现getter方法并保持const正确性的正确方法是什么?也就是说,我想让我的getter方法成为const,因为在第一次使用它之后,它是一个普通的getter方法.这是第一次(首次初始化对象时)const不适用.我想做什么:

class MyClass {
  MyClass() : expensive_object_(NULL) {}
  QObject* GetExpensiveObject() const {
    if (!expensive_object_) {
      expensive_object = CreateExpensiveObject();
    }
    return expensive_object_;
  }
private:
  QObject *expensive_object_;
};
Run Code Online (Sandbox Code Playgroud)

我可以吃蛋糕吗?

c++ lazy-loading const

30
推荐指数
4
解决办法
9500
查看次数

Const字符串数组

可能重复:
声明一个Const数组

我需要在类中使用一个const字符串数组.就像是

public class some_class_t
{
    public const string[] names = new string[4]
    {
        "alpha", "beta", "gamma", "delta"
    };
}
Run Code Online (Sandbox Code Playgroud)

但是这段代码会导致错误:

引用类型'string []'的常量"名称"只能用null初始化.

我该怎么办?

.net c# arrays string const

30
推荐指数
1
解决办法
6万
查看次数

GNU C中的__attribute __((const))vs __attribute __((pure))

__attribute__((const))__attribute__((pure))GNU C有什么区别?

__attribute__((const)) int f() {
    /* ... */
    return 4;
}
Run Code Online (Sandbox Code Playgroud)

VS

__attribute__((pure)) int f() {
    /* ... */
    return 4;
}
Run Code Online (Sandbox Code Playgroud)

c attributes gcc gnu const

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

将vector <T>转换为vector <const T>

我有一个类型的成员变量vector<T>(其中T是一个自定义类,但它也可以是int.)我有一个函数,我想从中返回一个指向这个向量的指针,但我不希望调用者能够改变矢量或它的项目.所以我想要返回类型const vector<const T>*

我尝试过的铸造方法都没有.编译器一直在抱怨T与const T不兼容.

这里有一些代码,展示了我正在尝试做的事情的要点;

vector<int> a;
const vector<const int>* b = (const vector<const int>* ) (&a);
Run Code Online (Sandbox Code Playgroud)

这段代码不能为我编译.

提前致谢!

c++ const

29
推荐指数
3
解决办法
8758
查看次数

在VB.NET中声明十六进制常量

如何将以下C#十六进制转换为VB.NET十六进制?

private const UInt32 temp = 0xE6359A60;
Run Code Online (Sandbox Code Playgroud)

我尝试了以下,但它不起作用.

Public Const temp As System.UInt32 = 0xE6359A60
Run Code Online (Sandbox Code Playgroud)

c# vb.net hex const

29
推荐指数
1
解决办法
3万
查看次数

为什么静态成员函数不能有cv-qualifier?

这是错误:

error: static member function ‘static void myClass::myfunct()’ cannot have cv-qualifier
Run Code Online (Sandbox Code Playgroud)

有人可以解释这个错误以及为什么const不能使用.

#include<iostream>
class myClass{      
   static void myfunct() const 
   { 
     //do something
   }
};

int main()
{
   //some code
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ static const visual-c++

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

为什么int指针的const向量中的dereferenced元素是可变的?

我不确定它的真正含义const vector<int *>所以我编写了下面的代码来获得一个想法但现在更加困惑.

vector<int *> v;
int x = 1, y = 2;
v.push_back(&x);
v.push_back(&y);

const vector<int *> w = v;
w[0] = &y;   //failed. Element is a constant pointer?
*(w[0]) ++;  //failed. Element pointer references to constant value?
Run Code Online (Sandbox Code Playgroud)

如果我在这里停下来,我会假设这const vector<int *>是一个向量const int * const,但后来我尝试了以下与这个假设明显矛盾的方法.

*(w[0]) += 3; //passed. Value not constant?
*(w[0]) = 20; //passed. Why...
Run Code Online (Sandbox Code Playgroud)

现在,*(w[0])对于未知的原因我明明对待++,并+=和分配方式不同.我确信自己const vector只声明了vector类的一个常量对象,并且上面的结果可能取决于运算符重载vector类的实际实现.但我无法绕过这个.有人可以帮忙解释一下吗?

如果它是相关的,我在Mac上使用g ++ 4.2.

c++ pointers const vector operator-precedence

29
推荐指数
3
解决办法
1731
查看次数