const相关内容
如何将 std :: string 转换为 char * 或 const char * ? 解决方案 如果你只想传递 std :: string 到需要 const char * 您可以使用 std :: string str; const char * c = str.c_str(); 如果要获得可写副本,例如 char * ,你可以这样做: st
..
我知道你可以使用 const_cast 将 const 转换为非 - const 。 到 const ? 解决方案 const_cast 可以按顺序删除或给对象添加constness。 设计范例: code> class foo { int i; public: foo(int i):i(i){} int bar()const { return i;
..
想象我有这个C函数(和头文件中的相应原型) void clearstring ){ char * dst =(char *)data; * dst = 0; } 在上述代码中有未定义的行为, c $ c> const away ,或者这是一个非常糟糕的编程实践吗? 假设没有const限定使用的对象 char name [] =“pmg”;
..
在C ++中,编译以下代码: std :: pair *> (& x); 出现错误: 错误:无效static_cast从类型'std :: pair *'到类型'std :: pair *'
..
我注意到,将一个 char 赋值给一个 const int& $ c> int& 给出编译错误。 char c; int& x = c; //这不能编译 const int& y = c; //这是确定 我知道,这不是一个好的做法,好奇地知道它发生的原因。 我已经通过寻找“赋值给不同类型的引用”,“赋值给一个int引用”和“const引用和非引用-cons
..
要将 const 添加到非const对象,这是首选方法? const_cast 或 static_cast 。在最近的一个问题中,有人提到他们更愿意使用 static_cast ,但是我认为 const_cast 意图的代码更清晰。那么使用 static_cast 创建一个变量const的参数是什么? 解决方案 p>不要使用。初始化一个引用对象的const引用: T
..
我有类似这样的类: class A { std :: string tmp; public: const std :: string& doSomething()const { tmp =“something”; return tmp; } }; 这是非常重要的方法 doSomething() const 并返回引用而不是字符串本身。 只有这
..
std :: priority_queue :: top 返回一个常数值。但是,我想从优先级队列中删除顶级元素,并且能够在其他位置修改它。 priority_queue,SomeClassCompare> ; ... SomeClass * toBeModified =&(pQueue.top()); pQueue.
..
您会替换 const int one = 1; const int two = 2; ? constexpr int one = 1; constexpr int two = 2; 我的理解是否正确,两个块在语义上是否完全相同, 另一方面,由于 constexpr 意味着 const ,你可以认为更一致的是总是喜欢更具限制
..
我有一个STL容器,其元素类型为 const std :: shared_ptr 。 I想为用户提供两个迭代器类型: MyContainer :: iterator typedefed为 std :: vector code> (应该是 std :: vector
..
常数 在某些地方,语言规则需要常量表达式 数组边界(§2.2.5,§7.3),情况标签(§2.2.4,§9.4.2),一些 模板参数(§25.2)和使用constexpr声明的常量。 在其他情况下,编译时评估对性能很重要。 独立于性能问题,不变性(具有不可改变状态的对象)的概念是重要的设计问题 (§10.4)。 看来Stroustrup在这里建议 constexpr 确保对象
..
struct STest:public boost :: noncopyable { STest(STest&& test):m_n(std :: move(test.m_n)){} explicit STest(int n):m_n(n){} int m_n; }; STest FuncUsingConst(int n){ STest const a(n); retu
..
许多人不知道 const 右值引用是C ++ 11语言的一部分。 此博文讨论了这些问题,但出现关于约束规则的错误。引用博客: struct s {}; void f(s&); //#1 void f(const s&); //#2 void f(s&&&); //#3 void f(const s&&&); / /#4 const s g(); s x;
..
我在C ++中有以下代码,我想将一个整数转换为一个const char *,以便写入一个文件。我试过itoa或sstream函数,但它不工作。 FILE * pFile; pFile = fopen(“myfile.txt”,“w”); int a = 5; fputs(& a,pFile); fclose(pFile); 提前感谢 解决方案
..
我有两个尺寸的不确定大小的常数矩阵,例如 const int denoise [] [3] = {... } 。 const int deconv [] [4] = {...} 然后我定义一个函数 void handleMatrix(const int * const *){...} 希望处理这些矩阵。但它是不正确的。 我尝试使用一个模板: te
..
我有一个c ++代码在keil uvision5的部分,得到错误28:表达式必须有一个常量的值。我想弄清楚如何修复它。 这是一行(函数内部),它发生在: osPoolDef_t pool_def = {queue_def-> queue_sz,queue_def-> item_sz}; 它不喜欢变量queue_sz或item_sz。 这里是osPoolDe
..
在类中声明和定义的静态const变量。如何在同一项目中另一个类的私有访问中访问它。是否可以? //在一些头文件中 A类{ public: // some data private: static const uint8_t AVar = 1; //其他数据 }; //在另一个头文件中 B类{ static const Bvar; }; //这里B类
..
我有一个 struct 和一些 const 变量 struct HashData { const HashKey key; const void * data; HashData(const HashKey& key_,const void * data_):key(key_),data(data_){} / *如何写? HashData operator =(con
..
最近,我与一个随机引起SEGFAULT的函数有不断的战斗。在尝试找出问题后做了一些额外的工作后,我想出了以下: 通过pastebin发布的所有代码: BUILD 1:这是原始代码,它导致以下SEGFAULT(在链接之后给出) http://pastebin.com/huzcqnDA SEGFAULT: #0 6FC657AC libstdc ++ - 6!_ZNKSs
..
我有一个小程序,我试图在地图中搜索一个特定的字符串,我得到正确的结果,如果我传递静态const字符串“us”找到,但它不工作,如果我复制一个字符串到指针。 我不知怎么想,它试图比较传递的字符串的地址。我计划摆脱std :: string从由于某些原因。 using namespace std; static struct MarketLang { const char * ma
..