const-correctness

    2熱度

    1回答

    我有一個類Reader,它提供對二進制文件的訪問以對其執行讀取操作。 該文件在同一文件中包含多個偏移量列表,其中要找到數據。這意味着,要獲得某些數據段,必須從某個位置讀取偏移量,然後跳轉到該偏移量,再次讀取偏移量,在那裏跳轉等,直到達到實際數據。 類認爲,在每次調用諸如 // reads 4 bytes and advances the position by 4 bytes uint32 Re

    0熱度

    2回答

    (更新:這個問題從價值具有用於const Foo和Foo不同的含義對象通過包裝類,基於entirely on strong opinions from people here此舉的實現源於之前,我一直在身邊掠過const Foo*和Foo*當包裝來了,我換了Wrapper<Foo>和const Wrapper<Foo>現在很清楚,機械替代沒有意義,我將需要更復雜的東西,如Wrapper<Foo>和

    11熱度

    6回答

    使用案例: class A { static int s_common; public: static int getCommon() const { s_common; }; }; 典型地,這將導致一個錯誤: error: static member function ‘static int A::getCommon()’ cannot have cv-qualifi

    0熱度

    5回答

    這裏單類是一組實現了一種適配器模式的C++類: #include <iostream> class Cfoo { public: explicit Cfoo(int i):i_(i){} void SetI(int i){ i_ = i; } int GetI()const{ return(i_); } private: int i_; };

    1熱度

    2回答

    可能重複: Does const-correctness give the compiler more room for optimization? 在過去的幾個星期,我已經開發出一種東西讓我的所有非靜態成員const如果可能的話以避免無意的編程錯誤。然而,這種做法提供了一些巨大的缺點,特別是對於實體對象,例如,如果他們選擇直接聚集這樣的實體對象而不是使用指針,那麼沒有人能夠再次調用賦值操作符。

    8熱度

    4回答

    我在我的類中有一個const方法,它不能更改爲非const。在這種方法中,我需要調用非const方法,但編譯器不讓我這樣做。 有沒有辦法解決它?這裏是我的代碼的簡化示例: int SomeClass::someMethod() const { QColor saveColor = color(); setColor(QColor(255,255,255)); // Callin

    6熱度

    2回答

    如果我創建一個全局常量值數組,例如 const int SOME_LIST[SOME_LIST_SIZE] = {2, 3, 5, 7, 11}; 是否有可能以任何方式修改SOME_LIST? 我該怎麼寫這樣,SOME_LIST指向常量內存位置,並且是一個常量指針本身(即不能指向其他地方)?

    9熱度

    1回答

    顯然最好使用const,除非有意思是可變的,但是你走多遠?如果我有一個字符串數組,我的函數簽名應該包含這個嗎? char const * const * const my_strings 我不會被修改它任何,所以這是一個常數指針恆定指針的恆定字符陣列的所述第一元件的陣列的第一個元素。這是一口,而且代碼幾乎不可讀。所有這些都是一個簡單的數據結構,如argv。 我覺得好像const應該是默認的,應

    10熱度

    1回答

    我試圖向一些新代碼介紹一些const正確性(實際上是功能範例),並發現我無法將std::shared_ptr<A>傳遞給期望std::shared_ptr<A const>的函數。請注意,我不想將強行轉換爲但引入它,這與原始指針是合法的。 有沒有辦法解決這個問題?我沒有找到一個成員函數來做到這一點。 用g ++ 4.6.1說出確切的錯誤是: error: no matching function

    2熱度

    2回答

    - (id)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length encoding:(NSStringEncoding)encoding freeWhenDone:(BOOL)flag 「字節」不是常量指針。這是否意味着這種方法可能會修改「字節」?