[英]changing a value of a class pointer in const Class function gives an error in some compiler but not others
我有下面的代碼,它在某些編譯器中給出了“分段錯誤”的錯誤,但對於其他編譯器,它給出的“40”為 output。 為什么有區別? ...
[英]changing a value of a class pointer in const Class function gives an error in some compiler but not others
我有下面的代碼,它在某些編譯器中給出了“分段錯誤”的錯誤,但對於其他編譯器,它給出的“40”為 output。 為什么有區別? ...
[英]I can't call constructor of inner class with this pointer of outer class
我不知道為什么下面的代碼無法編譯並顯示錯誤: “沒有構造函數實例” cb :: iterator :: iterator“匹配參數列表參數類型為:(int,const cb)” 但是,當我取消注釋構造函數的第二個版本時,代碼編譯良好! 為什么編譯器將*this視為const? ...
[英]Why is a public const method not called when the non-const one is private?
考慮這個代碼: 編譯器錯誤是: 錯誤:“void A::foo()”是私有的。 但是當我刪除私人的時,它就起作用了。 當非常量方法是私有的時,為什么不調用公共 const 方法? 換句話說,為什么重載決議先於訪問控制? 這很奇怪。 你認為它是一致的嗎? 我的代碼可以工作,然后我添加了 ...
[英]Const method returning non-const reference to vector element
我很難弄清楚如何從const類方法返回std::vector的元素的non-const引用。 我想要的一個簡單例子是, 我想要的行為是,我希望能夠做到以下幾點, Eigen給出了相同類型的行為,但我無法弄清楚如何讓它工作。 ...
[英]Might this cause an infinite loop?
對於定義const的第二個const版本,是否可以保證這樣做安全? 當我想返回const它似乎將具有無限遞歸,但是我要調用的另一個函數是非const。 它適用於g ++,但我擔心這是不安全的。 ...
[英]Why is std::basic_string::operator[] a const method if it's also a non-const method?
http://cplusplus.com/reference/string/basic_string/operator [] 我知道第二個版本返回const以防止在需要const結果時發出警告並減輕強制轉換的好處,但是如果該函數已經提供了非const方法(方法-不是結果),那么這樣做的目的 ...
[英]C++ overload resolution, conversion operators and const
在這種情況下 情況很清楚 - f(int *)被調用似乎是正確的。 但是,如果我有這個(這是錯誤的(*)): 運算符char *()被調用。 我無法弄清楚為什么這樣的決策路徑會比去操作員bool()更好。 有任何想法嗎? (*)如果將const添加到第二個運算符, ...
[英]On a nonconst object, why won't C++ call the const version of a method with public-const and private-nonconst overloads?
MSVC 2013 不喜歡這樣: 如果我轉換為const引用,它會起作用: 為什么我不能在非const對象上調用const方法? ...
[英]Thread safety of const reference return of const method
考慮這個課程: 方法getVectorRef是否安全? 是否有可能在getVectorRef返回期間彈出另一個線程並調用insertElement ,以便成員向量發生更改並且getVectorRef的調用者得到錯誤的const引用? 有兩個const限定符(一個用於向量而另一 ...
[英]How to use decrement operator on a static variable in a class
我有一個這樣的類,並且我想在“ getManagerNumber”中使用減量運算符來讓ManagerNumber減1,該怎么辦? ...
[英]Calling a const function rather than its non-const version
為了我的目的,我試圖包裝類似於 Qt 的共享數據指針的東西,在測試時我發現當應該調用 const 函數時,它的非 const 版本被選擇了。 我正在使用 C++0x 選項進行編譯,這是一個最小的代碼: 如您所見,Data.x 是一個 const 函數,因此被調用的運算符 -> 應該是 c ...
[英]C++ - Why static member function can't be created with 'const' qualifier
今天我遇到了一個問題。 我需要一個static成員 function, const不是必須的,而是更好的。 但是,我的努力沒有成功。 誰能說出為什么或如何? ...
[英]What can a 'const' method change?
C++ 方法允許使用const限定符來指示該方法不更改對象。 但是,這是什么意思? 例如。 如果實例變量是指針,是否意味着指針沒有改變,或者它們指向的內存沒有改變? 具體來說,這是一個最小的示例類 方法set是否正確符合const ? 它不會更改成員變量data ,但確實會更改數組的內容。 ...
[英]const member functions can call const member functions only?
const成員函數僅調用const成員函數嗎? 如果我不使compute()為const,那么編譯器會抱怨。 是否因為const成員函數不允許修改成員而不允許對非const的調用,因為這意味着const成員函數將“間接”修改數據成員? ...
[英]Should I declare these methods const?
我正在研究一些C ++代碼,其中我有幾個私有方法的管理器對象,如 它在此對象的偵聽器上調用OnFooUpdated()方法。 請注意,它們不會修改此對象的狀態,因此它們在技術上可以成為const方法,即使它們通常會修改整個系統的狀態。 特別是,偵聽器對象可能會回調此對象並對其進行 ...