函数参数中的 struct 关键字以及 const 正确性
我的库中有一个不透明类型定义为: typedef struct MyOpaqueType* MyType; // easier to type for client code 我无法使用 typedef 传递指向 const 结…
Qt - QList const 正确性
QList 不容易保持常量正确。 函数 void f(QList list) { list[0]->constFunction(); } 考虑一下我可以将 f 更改为的 void f(QList list) ,但我不能 f…
const 正确性是否为编译器提供了更多优化空间?
我知道它提高了可读性并使程序不易出错,但是它对性能提高了多少? 顺便说一句,引用和 const 指针之间的主要区别是什么?我假设它们以不同的方式存储…
让函数按非内置类型的 const 值返回的用例有哪些?
最近我读到,从函数返回值来限定非内置类型的返回类型 const 是有意义的,例如: const Result operation() { //..do something.. return Result(..);…
错误:将 const xxx 传递为“this”成员函数的参数丢弃限定符
#include #include using namespace std; class StudentT { public: int id; string name; public: StudentT(int _id, string _name) : id(_id), name…
在成员函数末尾添加 const 是一个好习惯吗 - 在适当的情况下?
Closed. This question is opinion-based. It is not currently accepting answers. 想要改进这个问题?更新问题,以便可以通过编辑这篇文章用事实和…
为什么 g++和 MS Visual Studio C++以不同的方式执行以下代码?
我无法理解哪个编译器有问题(如果有)。与 MS Visual Studio C++ 相比,g++ 的以下代码的执行方式有所不同。 #include int main() { int a = 10; //s…
我是否应该声明任何可以为 const 的方法
简单的问题。 我应该声明任何可以为 const 方法的方法吗? 这包括不返回任何成员变量或返回对成员变量的 const 引用的方法。是否有任何理由不这样做(…
单元测试++为什么需要使用非 const char* 的 CheckEqual() 重载
在 UnitTest++ 框架中,Checks.cpp 模块中有 4 个重载版本的 CheckEqual。每个重载都采用不同的预期常量或实际常量。然后所有四个都只调用 CheckStrin…
是 const_cast吗?有没有用过?
最近我发现了一段C++代码,它有效地做了以下事情: char* pointer = ...; const char* constPointer = const_cast( pointer ); 显然作者认为const_cas…
C++避免常量和非常量访问的代码重复
我有一个类应该为每个成员变量调用访问者方法。像这样的事情: class A{ int a, b, c; public: void accept(Visitor &visitor){ visitor.visit(a); vi…
我们如何调用“删除这个”? ”在常量成员函数中?
我看到的代码片段如下: class UPNumber { public: UPNumber(); UPNumber(int initValue); ... // pseudo-destructor (a const member function, beca…
在 const 方法中使用引用
假设我有一个这样的类: class LinkedList { struct Node { int StoredValue; // ... }; Node& GetNodeReference(std::size_t Index) { // ... return…
如何在 const 函数内调用非常量函数 (C++)
我有一个如下所示的遗留函数: int Random() const { return var_ ? 4 : 0; } 我需要在该遗留代码中调用一个函数,以便它现在看起来像这样: int Rand…
构造函数中的 const_cast 可接受
这是 const_cast 的有效使用吗?我在构造函数中使用它,如下所示: KeyLiteObject(const char * extension, const char * swap_suffix) : _extension(…