草庐IT

const-string

全部标签

如果值来自成员变量,则C++复制初始化和const引用初始化之间的区别

考虑以下几点:#includeusingnamespacestd;classMyClass{public:MyClass(stringmyMemberInitValue);conststringgetMyMember1();private:stringmyMember;};MyClass::MyClass(stringmyMemberInitValue):myMember(myMemberInitValue){}conststringMyClass::getMyMember1(){returnmyMember;}intmain(){MyClassmyObj("HelloWorld");

c++ - 用 stoi 声明的 Const Int 不被认为是 const

我使用CGAL编写了一个简单的测试程序,遇到了以下问题:点在上面定义为typedefK::Point_dPoint;但我认为这无关紧要。当我尝试按如下方式编译程序时:constintsize=10;PointP[size];g++这样做没有问题。如果我尝试编译:constintsize=stoi("10");PointP[size]出现以下错误error:variablelengtharrayofnon-PODelementtype'Point'(aka'Point_d>>>')为什么在从字符串中检索时将大小视为变量而不是常量? 最佳答案

c++ - 为什么调用 `int* Get()` 而不是 `const int& Get()` ?

我有一个B类,它有两个方法,一个返回指向成员变量的指针,另一个返回对该变量的常量引用。我尝试调用这些方法。在调用期间,我将返回值存储到相应的返回类型。我期望适当的返回类型最终会调用适当的方法,但我收到一个编译错误:error:invalidconversionfrom‘int*’to‘int’[-fpermissive]constint&refval2=b.Get();`Hereismycode:#includeclassB{public:int*Get(){return&x_;}constint&Get()const{returnx_;}private:intx_=0;};intma

c++ - 如果方法是const,如何找到 vector 的中值?

我创建了一个名为Collect的方法,它将一堆值添加到vector中(如下所示)voidMedian::Collect(doubledatum){myVector.push_back(datum);}我需要创建一个方法来计算我在上述方法中收集到的vector中的所有值的中位数。函数定义写在下面/*Calculatesthemedianofthedata(datum)fromtheCollectmethod.*/doubleMedian::Calculate()const{}所以我知道我首先需要对vector进行排序才能找到中位数。以下是我的尝试:doubleMedian::Calcul

c++ - 如何在 C++ 的构造函数中定义一个 extern const

两个config.json文件包含我想要存储到常量中的值。我的计划是在相应类的构造函数中加载并解析json文件,并将值赋值给常量。但是,在Debug模式下,出现“...LNK2019:unresolvedexternalsymbol...”的错误。那么,是不是不能在构造函数中定义常量呢?由于常量的值取决于变量VARIANT,我创建了一个ifelse来读取正确的.json文件。//constants.hexternconstintBARL;externconstintBAR_TOL;//constants.cppConstants::Constants(){Json::Readerrea

c++ - char[](c-string) 的初始化标准

考虑以下代码:intmain(){charhi[5]="Hi!";printf("%d",hi[4]);}将打印什么?更重要的是,在最新C++标准中,标准中是否提及将打印的内容?如果有提及,它在哪里?由于某种原因,很难找到关于此的最新信息,而且各种来源的信息相互矛盾。我试过en.cppreference.com和cplusplus.com,前者没有任何信息,后者声称值未确定。然而,usingnamespacestd;intmain(){charmySt[1000000]="Hi!";for(inti=0;i这在我的系统上只打印0、1和2,所以我希望“rest”被初始化为“\0”。另外据

C++ 自动类型转换为 std::string 和 char* 的区别

作为学习练习,我一直在研究C++中的自动类型转换是如何工作的。我知道通常应该避免自动类型转换,但我还是想通过了解它的工作原理来增加我对C++的了解。我已经创建了一个可以自动转换为std::string的StdStringConverter类,但是编译器(Debian上的g++4.3.4)似乎没有这样做将对象与真实的std::string进行比较时的转换(请忽略缺少按引用传递和不必要地创建临时对象的情况):#includeclassStdStringConverter{public:explicitStdStringConverter(std::stringname):m_name(na

c++ - const 到非常量 c++

这可能吗:将常量变量变为非常量我正在创建一个全新的字符串类,我的构造函数如下所示LString(constcharstring1[]){/*whateverIdo*/}我不会放置const关键字,但这是我获得类似字符串的唯一方法LStringls="astring";我会有很多函数来修改这个字符串即使我复制了这个字符串,我仍然无法将const转换为非const有可能吗如果没有,谁能想到漏洞好吧,有些人说没问题,这是我的代码#include#includeusingnamespacestd;classLString{public:LString(constcharstring1[]){c

c++ - C++用stringstream将string转int并获取消耗的字符数

我是C++新手(具有C#背景),正在尝试学习如何将字符串转换为int。我通过使用stringstream并将其输出到double来让它工作,如下所示:constchar*inputIndex="5+2";doublenumber=0;stringstreamss(inputIndex);ss>>number;//number=5这很好用。我遇到的问题是我正在解析的字符串以数字开头,但可能在数字后有其他非数字字符(例如“5+2”、“9-(3+2)”等)。stringstream在开头解析数字并在遇到非数字时停止,就像我需要的那样。当我想知道有多少字符被解析为数字时,问题就来了。例如,如果

c++ - #include <string> 在 header 中定义了一些结构。错误 : string does not define a type

#ifndefSTRCUTS_H#defineSTRCUTS_H#includestructmenuEntry{stringitemID;//'string'doesnotnameatypestringitemName;//'string'doesnotnameatype};#endif当我将#include放在header保护上方时,我得到了同样的错误。想一想,我以前在将结构定义放在标题中时遇到过奇怪的麻烦。一定是我没有得到的东西。 最佳答案 您需要将string更改为std::string,即#ifndefSTRCUTS_H#d