19得票2回答
函数的引用限定符是否有真正的用例?

最近我了解了关于函数的引用限定符,例如。 struct foo { void bar() {} void bar1() & {} void bar2() && {} }; 在哪些情况下我可能需要这个功能?这个语言特性有没有实际的用例呢?

31得票4回答
为什么调用了非常量成员函数,而不是常量成员函数?

我尝试为我的目的编写类似于Qt的共享数据指针的封装,经过测试发现,当应该调用const函数时,却选择了非const版本。 我正在使用C++0x选项进行编译,以下是一个最简代码示例: struct Data { int x() const { return 1; ...

8得票1回答
在C++中进行常量成员函数的重载决议

假设您有一个类T,其中包含两个成员函数: char foo() const {...} char foo() {...}. 据我所知,当对常量T进行调用时,我们解析为(1);对于非常量T,则解析为(2)。 这是正确的吗? 在此解析中调用了哪个规则?(参考标准很好,但简要摘要也会受到...

8得票1回答
一个const临时对象为什么选择调用非const成员函数而不是const成员函数?

此示例代码来自:http://en.cppreference.com/w/cpp/types/add_cv(我稍作修改)。 struct foo { void m() { std::cout << "Non-cv\n"; } void m() const { st...

12得票3回答
为什么要使用const成员函数?

我正在努力理解类的getter和setter函数... 我的问题是: 如果我设计一个只从类中获取状态的函数(一个“getter”函数),为什么要将其标记为“const成员函数”? 我的意思是,如果我的函数设计为不改变类的任何属性,为什么要使用const成员函数? 我不明白,请帮我解释一下 :...

870得票12回答
在成员函数声明的末尾,'const' 的含义是什么?

在这些声明中,const 的意思是什么? class foobar { public: operator int () const; const char* foo() const; };

108得票5回答
为什么静态成员函数不能有const限定符?

今天我遇到了一个问题。我需要一个静态成员函数,最好是带有const修饰符的。但是,我尝试了很多次都没有成功。有人能告诉我为什么或者怎么做吗?

21得票7回答
在const成员函数中调用非const成员函数

我想知道在const成员函数中是否可以调用非const成员函数。在下面的示例中,First会产生编译错误。我理解为什么会出错,我想知道是否有办法解决这个问题。 class Foo { const int& First() const { return S...

9得票1回答
为什么析构函数不能有引用限定符?

除了“因为标准规定如此”的原因外,以下代码不允许的原因是什么? struct Foo { ~Foo() && {} ~Foo() & {} }; 我知道这是非法的,但我想知道为什么。 我在思考一个老问题-避免未命名实例,例如在使用守卫对象时: ...

27得票2回答
在一个非const对象上,为什么C++不会调用具有公共const和私有非const重载的成员函数的const版本?

class C { public: void foo() const {} private: void foo() {} }; int main() { C c; c.foo(); } MSVC 2013 不喜欢这个: > error C2248:...