我有下面的代码,它在某些编译器中给出了“分段错误”的错误,但对于其他编译器,它给出的“40”为 output。 为什么有区别? ...
我有下面的代码,它在某些编译器中给出了“分段错误”的错误,但对于其他编译器,它给出的“40”为 output。 为什么有区别? ...
我不知道为什么下面的代码无法编译并显示错误: “没有构造函数实例” cb :: iterator :: iterator“匹配参数列表参数类型为:(int,const cb)” 但是,当我取消注释构造函数的第二个版本时,代码编译良好! 为什么编译器将*this视为const? ...
考虑这个代码: 编译器错误是: 错误:“void A::foo()”是私有的。 但是当我删除私人的时,它就起作用了。 当非常量方法是私有的时,为什么不调用公共 const 方法? 换句话说,为什么重载决议先于访问控制? 这很奇怪。 你认为它是一致的吗? 我的代码可以工作,然后我添加了 ...
我很难弄清楚如何从const类方法返回std::vector的元素的non-const引用。 我想要的一个简单例子是, 我想要的行为是,我希望能够做到以下几点, Eigen给出了相同类型的行为,但我无法弄清楚如何让它工作。 ...
对于定义const的第二个const版本,是否可以保证这样做安全? 当我想返回const它似乎将具有无限递归,但是我要调用的另一个函数是非const。 它适用于g ++,但我担心这是不安全的。 ...
http://cplusplus.com/reference/string/basic_string/operator [] 我知道第二个版本返回const以防止在需要const结果时发出警告并减轻强制转换的好处,但是如果该函数已经提供了非const方法(方法-不是结果),那么这样做的目的 ...
在这种情况下 情况很清楚 - f(int *)被调用似乎是正确的。 但是,如果我有这个(这是错误的(*)): 运算符char *()被调用。 我无法弄清楚为什么这样的决策路径会比去操作员bool()更好。 有任何想法吗? (*)如果将const添加到第二个运算符, ...
MSVC 2013 不喜欢这样: 如果我转换为const引用,它会起作用: 为什么我不能在非const对象上调用const方法? ...
考虑这个课程: 方法getVectorRef是否安全? 是否有可能在getVectorRef返回期间弹出另一个线程并调用insertElement ,以便成员向量发生更改并且getVectorRef的调用者得到错误的const引用? 有两个const限定符(一个用于向量而另一 ...
我有一个这样的类,并且我想在“ getManagerNumber”中使用减量运算符来让ManagerNumber减1,该怎么办? ...
为了我的目的,我试图包装类似于 Qt 的共享数据指针的东西,在测试时我发现当应该调用 const 函数时,它的非 const 版本被选择了。 我正在使用 C++0x 选项进行编译,这是一个最小的代码: 如您所见,Data.x 是一个 const 函数,因此被调用的运算符 -> 应该是 c ...
今天我遇到了一个问题。 我需要一个static成员 function, const不是必须的,而是更好的。 但是,我的努力没有成功。 谁能说出为什么或如何? ...
C++ 方法允许使用const限定符来指示该方法不更改对象。 但是,这是什么意思? 例如。 如果实例变量是指针,是否意味着指针没有改变,或者它们指向的内存没有改变? 具体来说,这是一个最小的示例类 方法set是否正确符合const ? 它不会更改成员变量data ,但确实会更改数组的内容。 ...
const成员函数仅调用const成员函数吗? 如果我不使compute()为const,那么编译器会抱怨。 是否因为const成员函数不允许修改成员而不允许对非const的调用,因为这意味着const成员函数将“间接”修改数据成员? ...
我正在研究一些C ++代码,其中我有几个私有方法的管理器对象,如 它在此对象的侦听器上调用OnFooUpdated()方法。 请注意,它们不会修改此对象的状态,因此它们在技术上可以成为const方法,即使它们通常会修改整个系统的状态。 特别是,侦听器对象可能会回调此对象并对其进行 ...