首页 文章
  • 1 votes
     answers
     views

    为什么const不适用于stl map的size(),而它适用于其他容器? [重复]

    这个问题在这里已有答案: Why isn't the [] operator const for STL maps? 6个答案 在处理一个难以在整体上解释/解释的问题时遇到,所以这里是问题的相关重构 . 用windows上的gnu g编译这段代码 int recreate(const map <int , vector<string> > &bitFieldMa...
  • 9 votes
     answers
     views

    C常量结构成员初始化

    我班上有一个不变的 struct timespec 成员 . 我该如何初始化它? 我得到的唯一疯狂的想法是派生我自己的 timespec 并给它一个构造函数 . 非常感谢! #include <iostream> class Foo { private: const timespec bar; public: Foo ( void )...
  • 582 votes
     answers
     views

    define()vs const

    非常简单的问题:在PHP中,你什么时候使用 define('FOO', 1); 你什么时候用的 const FOO = 1; 这两者之间的主要区别是什么?
  • 0 votes
     answers
     views

    如何定义子类使用的常量?

    我需要定义一些将由基类及其子类使用的常量 . 不确定定义它们的正确方法是什么 . 我理解const,readonly,static const以及public,protected和private之间的区别(虽然我很少看到C#中使用了“protected”) . 应该如何定义这些常量?它们应该是公共const,公共只读,私有常量还是私有只读,并使用公共getter / setter来使用子类,还是应...
  • 8 votes
     answers
     views

    C和QT4.5 - 传递一个const int&overkill?通过引用传递有助于信号/插槽吗?

    这里有两个问题...... 我有许多功能,每帧多次调用实时视频处理应用程序 . 关于const的建议和通过引用传递,函数有一个像这样的签名 void processSomething(const int& value); 当我继续输入一些额外的字符时,我想知道这是否有点过分 . 第二个问题,关于QT的插槽/信号机制中的引用传递的主题,是否通过引用传递有助于防止在正常函数调用中复制对象?
  • 7 votes
     answers
     views

    const_cast vs reinterpret_cast

    参考SO C FAQ When should static_cast, dynamic_cast and reinterpret_cast be used? . const_cast用于删除或添加const到变量,它是唯一可靠,定义和合法的方法来删除constness . reinterpret_cast用于更改类型的解释 . 我理解为什么一个const变量应该只使用const_cast转换为非...
  • 427 votes
     answers
     views

    `constexpr`和`const`之间的区别

    constexpr 和 const 之间有什么区别? 我什么时候才能只使用其中一个? 我何时可以同时使用两者?如何选择?
  • 7 votes
     answers
     views

    有没有办法在Go中的构建时定义常量?

    我在Go中有一个程序,我希望在一堆二进制文件中编译,每个二进制文件都有不同的 const 值 . 更清楚的是,我有类似的东西: const wordLen = 6 type knowledge [wordLen]byte 这里, wordLen 与值6相关联,但是我希望有不同的二进制文件,值为5到10.我可以将它变为变量,然后使用切片而不是数组,但这会产生巨大的性能影响我的软(是的,我试过) ....
  • 0 votes
     answers
     views

    g 4.4 const var seg故障的取消引用变化

    我目前正在将代码从RHEL5移植到RHEL6 . 虽然我不同意这样做但我很好奇为什么解除引用const var并尝试更新它会导致RHEL6(g 4.4)而不是RHEL5中的段错误 . 程序很好没有const我只是很好奇关于const变量存储在g 4.4中的特殊之处 这是代码和段错误 #include <math.h> using namespace std; const doubl...
  • 7 votes
     answers
     views

    模板化类中的静态const成员初始化

    我有一个关于'static const'成员初始化的问题 . 在模板化类中,我定义了一个const成员并在类外部初始化它 .当我包含.h文件,其中该类在多个.cpp文件中实现时,我得到一个 LNK2005 error (I'm using VS2010) that says the constant is already defined . // List.hpp template <cl...
  • 6 votes
     answers
     views

    C - 通过const声明访问非const

    是否通过C标准允许的 const 声明访问非 const 对象?例如 . 以下代码保证在符合标准的平台上编译和输出23和42? 翻译单位A: int a = 23; void foo(void) { a = 42; } 翻译单位B: #include <stdio.h> extern volatile const int a; void foo(void); int main(v...
  • 1 votes
     answers
     views

    从const到非const的转储堆存储是否会调用未定义的行为?

    标准说: (6.7.3)如果尝试通过使用具有非const限定类型的左值来修改使用const限定类型定义的对象,则行为未定义 . 在未定义的行为部分: 尝试通过使用具有非const限定类型的左值来修改使用const限定类型定义的对象(6.7.3) malloc 的返回值是 uninitialized storage 的块 . 在该存储中没有构建 object . 那就是说,下面的代码合法吗...
  • 1 votes
     answers
     views

    丢弃限定符访问类中 Map 矢量时出错?

    我在.h中定义了如下类: #ifndef C1_H #define C1_H #include <iostream> #include <map> #include <string> #include <vector> class C1{ private: std::map<std::stri...
  • 9 votes
     answers
     views

    隐式实例化未定义模板'class'

    当我试图在我的库中为const和非const模板参数提供函数时,我遇到了一个奇怪的问题 . 以下源代码是一个最小的示例现象: #include <iostream> template<typename some_type> struct some_meta_class; template<> struct some_meta_class<int&gt...
  • 2 votes
     answers
     views

    什么是基于堆栈的参考?

    什么是基于堆栈的引用?它们与作为对象成员的引用有何不同?标准是否谈到这些? 我在Herb Sutter写的_2547026中遇到过这个: Q1:以下代码是否合法C? // Example 1 string f() { return "abc"; } void g() { const string& s = f(); cout << s <&...
  • 205 votes
     answers
     views

    是否在ES6中使用let或const声明变量?

    我已经玩了ES6一段时间了,我注意到虽然用 var 声明的变量按预期被提升了...... console.log(typeof name); // undefined var name = "John"; ...用 let 或 const 声明的变量似乎在提升方面存在一些问题: console.log(typeof name); // ReferenceError let n...
  • 1 votes
     answers
     views

    应该扩展const功能吗?

    编辑:这个问题可能会使用更合适的 Headers . 随意在评论中提出建议 . 在使用带有大类集的C时,我曾经遇到过 const 成为麻烦的情况,不是因为它的功能,而是因为它有一个非常简单的定义 . 它对整数或字符串的适用性是显而易见的,但对于更复杂的类,通常有多个属性可以彼此独立地修改 . 我想很多人都被迫学习 mutable 关键字可能会有类似的挫折感 . 对我来说最明显的例子是矩阵类,表示...
  • 0 votes
     answers
     views

    过度使用mutable来增强安全性?

    假设我有一个具有指针数组的类,我有一个方法取消引用指针并将其作为引用返回 . 我想允许方法调用者调用指针指向的对象的非const方法,但也希望保护自己免受调用者更改指针所指向的内容 . 如果我返回一个const引用,我必须将许多指针对象的方法标记为const,因此它的许多类成员变量都是可变的 . 这是不好的做法吗?如果是这样,我该如何解决这个问题呢? 过度使用可变性是否存在性能损失? ...
  • 24 votes
     answers
     views

    为什么std :: is_const :: value 'false'即使T的value_type是const?

    #include <type_traits> struct foo; int main() { const foo *bar; static_assert(std::is_const<decltype(*bar)>::value, "expected const but this is non-const!&...
  • 4 votes
     answers
     views

    使用volatile关键字修改const变量

    我正在回答question并制作了这个测试程序 . #include <stdio.h> int main() { volatile const int v = 5; int * a = &v; *a =4; printf("%d\n", v); return 0; } 如果没有volatile关键字,代码将优化(使...
  • 387 votes
     answers
     views

    静态常量字符串(类成员)

    我想为一个类(在这种情况下是一个形状工厂)有一个私有静态常量 . 我想要有类似的东西 . class A { private: static const string RECTANGLE = "rectangle"; } 不幸的是,我从C(g)编译器中得到了各种错误,例如: ISO C禁止成员'RECTANGLE'的初始化非整数类型'std :: stri...
  • -3 votes
     answers
     views

    cpp-如何用const int decalare和实现函数[关闭]

    我尝试以下列方式实施基础 class 的学生: class Student { public: Student(std::string name_ , int const id_); virtual ~Student(); void addGrade(int const grade2add); void print(); ...
  • 347 votes
     answers
     views

    常量的C#命名约定?

    private const int THE_ANSWER = 42; 要么 private const int theAnswer = 42; 我个人认为在现代IDE中我们应该使用camelCase,因为ALL_CAPS看起来很奇怪 . 你怎么看?
  • 7 votes
     answers
     views

    如何使用公共const迭代器和私有非const迭代器提供类似于stl的容器?

    我有一个包含std :: list的类,并且希望为const_iterator提供public begin()和end(),为plain iterator提供private begin()和end() . 但是,编译器看到私有版本并抱怨它是私有的而不是使用公共const版本 . 我理解C不会在返回类型(在本例中为const_iterator和iterator)上重载,因此它选择非const版本,因...
  • 7 votes
     answers
     views

    您是否可以将C RValue参考参数标记为const

    我一直在切换模板工厂函数来使用(和理解)std :: forward来支持rvalues和移动语义 . 我通常用于模板类的样板工厂函数始终将参数标记为const: #include <iostream> #include <utility> template<typename T, typename U> struct MyPair{ MyPair(c...
  • 71 votes
     answers
     views

    C const map元素访问

    我试图使用operator []访问const C map中的元素,但是这个方法失败了 . 我也尝试用“at()”来做同样的事情 . 这次工作 . 但是,我找不到任何关于使用“at()”来访问const C map中的元素的引用 . “at()”是C Map 中新添加的功能吗?我在哪里可以找到更多关于此的信息?非常感谢你! 一个例子可能如下: #include <iostream> ...
  • 142 votes
     answers
     views

    常量指针有什么意义?

    我不是在讨论指向const值的指针,而是指向const指针本身 . 我正在学习C和C,超越了基本的东西,直到今天我才意识到指针是通过值传递给函数的,这是有道理的 . 这意味着在函数内部,我可以使复制的指针指向其他值,而不会影响来自调用者的原始指针 . 那么有一个函数头是什么意思: void foo(int* const ptr); 在这样的函数里面你不能让ptr指向别的东西因为它是const并且...
  • 3 votes
     answers
     views

    const限定符被忽略[重复]

    这个问题在这里已有答案: typedef pointer const weirdness 6个答案 我有一个struct type_s . 然后我输入一个指向结构type_s的指针作为类型 . 如果我有 const struct type_s* 那么编译器将正确地抱怨如果对结构成员进行了赋值,如函数Test1()中所示 . 但是如果我创建一个const类型,它是同一结构指针的typedef,编...
  • 0 votes
     answers
     views

    Arduino内存 - 静态

    我对arduino记忆几乎没有疑问 . 将全局变量(单个int)与PROGMEM一起移动到闪存中是否有意义,还是为我编译器?或者我应该声明全局变量“#define”而不是“static const int xy = ...” 循环函数中的静态变量示例: void loop(){static unsigned short Array [] = {Global_Variable_1,Glo...
  • 18 votes
     answers
     views

    Dart中''const' ' and ' 'final''关键字有什么区别?

    Dart语言中 const 和 final 关键字有什么区别? 这让我很困惑 .

热门问题