草庐IT

const_defined

全部标签

C++ 初学者 : what is the point of using a variable by reference if using "const"?

我想知道这个函数声明中的逻辑:CMyException(conststd::string&Libelle=std::string(),...按引用使用变量有什么意义?通常,只要变量可能在内部被修改,您就会通过引用传递一个变量...因此,如果您使用关键字const,这意味着它永远不会被修改。这是矛盾的。谁能给我解释一下? 最佳答案 实际上引用是用来避免不必要的对象拷贝。现在,要理解为什么使用const,试试这个:std::string&x=std::string();//error编译会报错。这是因为表达式std::string()创

c++ - 关于在 C++ 中返回 const 引用

我对在C++中返回const引用感到困惑。所以我在下面编写代码块并在gnuc++和visualstudio上进行测试。并找到不同的答案。谁能说出在C++中使用returnconst引用的好处以及在不同编译器上导致不同行为的原因。#includeusingnamespacestd;classA{public:A(intnum1,intnum2):m_num1(num1),m_num2(num2){coutm_num1*rhs.m_num1,this->m_num2*rhs.m_num1);}A(constA&rhs){this->m_num1=rhs.m_num1;this->m_num

c++ - const在不同地方的c++中是什么意思

有什么区别conststring&getName()const{returnname;}和string&getName()const{returnname;}const开头和结尾是什么意思? 最佳答案 函数签名末尾的const表示该方法是一个const成员函数,因此您的两个方法都是const成员函数。开头的const表示返回的是常量。第一个示例是一个返回对内部数据的常量引用的常量方法,因此是常量正确的。第二个是const方法,返回对内部数据的非const引用。这不是const正确的,因为这意味着您将能够修改const对象的数据。对c

C++/Qt 编码风格——#define 应该放在哪里

我正尝试在Qt中构建一个突破性的游戏克隆。我需要弄清楚我的球与哪种类型的QGraphicsItem发生碰撞。例如,如果我的球与墙壁碰撞,球就会弹开,如果它与砖碰撞,它必须反弹并摧毁砖。要找出它是什么类型的QGraphicsItem,我认为最好的方法可能是覆盖QGraphicsItem::type()(如果这是,请告诉我方法不对!)。在brick.h的以下代码中,我将“Brick”的类型设置为3。现在,值3看起来很难跟踪。相反,我宁愿用“#define”来声明一些东西#include//shouldthis#definebehere?//#defineBRICK_SPRITE3class

c++ - #define 代码行到别的东西

在c/c++中是否有可能执行以下操作:#define(_asmint3;)(exit(1))所以在我的代码中的任何地方,这一行都将在编译时被替换。我知道这是不好的做法,但有可能吗?干杯 最佳答案 您可以进行全局搜索并替换为您选择的编程编辑器(或IDE),并将_asmint3更改为例如FOO,然后像这样定义一个宏FOO:#if1// 关于c++-#define代码行到别的东西,我们在StackOverflow上找到一个类似的问题: https://stackov

c++ - const char * 和文字字符串有什么区别?

我正在处理一个具有QT小部件的表单,我必须在QTextEdit字段中设置一些值。我不得不调用一个声明如下的函数:voidSDB::setDescription(constchar*Description);当我用这个方法调用它时(i)constchar*desc=saveOptionsDesLineEditBox->text().toStdString().c_str();SDB::setDescription(desc);它在小部件的文本框中显示无法识别的符号。但是通过第二种方法调用(ii)SDB::setDescription(saveOptionsDesLineEditBox->

c++ - 输出指针的 const 前缀

我有一段C++代码,我觉得有点困惑:intfoo(constchar*&bar)在这种情况下,如果我想将条形指针写入为:bar=...没关系。那么我应该如何理解这个const。const指针与指针指向const值有何不同? 最佳答案 const适用于它左边的任何东西,除非它左边没有任何东西,在这种情况下它适用于它右边的任何东西。这意味着在您的情况下,bar是对指向constchar的指针的引用。bar本身不是常量,可以修改。如果您将bar更改为char*const&bar,即-对指向char的常量指针的引用,您将不会无法完成该任务。

c++ - C++中const成员函数中的静态成员修饰

我正在处理链表,但无法修改const函数“voidPrint()const”中当前指针的值在函数Print中,我想做"current=head"然后像"current=current->link"一样递增,但不能这样做,bcz它表明“错误C3490:无法修改‘current’,因为它正在通过const对象访问e:\Cpp\projects\datastructureass-1\datastructureass-1\source.cpp831Data结构Ass-1"#includestructnode{intdata;node*link;};classList{node*head,*cu

c++ - 如何将 const 字符串值放入 map

我想创建一个map,std::mapm_mapResponseDesc;我正在使用operator[]在map中附加一个值:m_mapResponseDesc[STATUS_LIMIT]="Limithasbeenexceeded";STATUS_LIMIT类型为enum.我遇到错误:errorC2678:binary'=':nooperatorfoundwhichtakesaleft-handoperandoftype'conststd::basic_string'(orthereisnoacceptableconversion)请指出我做错了什么。我没有得到任何线索。

c++ - 使用 malloc() 为 const char 字符串动态分配内存

我正在编写一个程序,它从.ini文件中读取一个值,然后将该值传递给一个接受PCSTR(即constchar*)的函数。函数是getaddrinfo()。所以,我想写PCSTRReadFromIni()。要返回常量字符串,我计划使用malloc()分配内存并将内存转换为常量字符串。我将能够获得从.ini文件中读取的确切字符数。这种技术可以吗?我真的不知道还能做什么。以下示例在VisualStudio2013中运行良好,并根据需要打印出“hello”。constchar*m(){char*c=(char*)malloc(6*sizeof(char));c="hello";return(co