const-correctness

    0熱度

    1回答

    查看C標準庫中的大多數函數,似乎缺少const,在指定的情況下,通常會首選。 例如: 文件ctype.h/C extern int isupper(int __c) __ATTR_CONST__; extern int islower(int __c) __ATTR_CONST__; extern int isdigit(int __c) __ATTR_CONST__; 爲什麼不是這些來代

    2熱度

    3回答

    我對加速度方法有const,但我可以調用權力方法。他們是否真的阻止了這一點? class Engine{ public: void Power(){ } }; class Car{ public: Car() : p(new Engine()){} void Accelerator() const{ p->Power();

    1熱度

    3回答

    我遍歷結構向量中的一組元素並想要更改其中一個結構中的元素。當我寫入元素來更改值時,更新不會保留。以下是我有: 首先,在頭文件: std::vector<Sched::ScheduledEvent_t> v_SchedEvents; typedef std::vector<Sched::ScheduledEvent_t>::const_iterator event_iter; 後來在一個.cp

    0熱度

    1回答

    在我的C99程序中,我有一個指向浮點數的結構(表示一個矩陣)。該結構會經歷一系列例程,例如main。 我想確保結構的內容(矩陣中的實際值)不會被調用的例程保持不變。但是數據應該可以從main改變。 我已經想出了以下解決方案,在那裏我定義一個指針const數據: struct math_object { const real_t *p_to_matrix; }; 這樣做,沒有所謂的例

    5熱度

    3回答

    有沒有辦法在Java中實現類似於C++的const的東西?具體而言,我有一個像 private static Vector2 sum(Vector2 vec1, Vector2 vec2) { return vec1.cpy().add(vec2); } 的功能,我想 使簽名,它不會修改它的參數, 和 執行它不明確修改它的參數(最好在編譯時,但插入運行時斷言也可以)。 現在我知道j

    0熱度

    4回答

    圖可以表示爲鄰接矩陣或鄰接表。我的Graph對象將圖形表示爲鄰接矩陣。出於性能原因,除非要求,否則我不計算鄰接列表;然而,一旦請求,我想保留清單(以避免重新構建它)。 將鄰接列表mutable做成合適的,以便用戶可以生成否則爲constGraph對象的鄰接列表?我問,因爲我不相信建立鄰接矩陣將被視爲「物理」,而不是對「Graph」狀態的「邏輯」改變。我也有一個adjacencyListBuilt方

    3熱度

    2回答

    這是原型execv: int execv(const char *path, char *const argv[]); 我可以通過作爲第二個參數的const char指針的數組? 這個例子程序給出了當USE_CAST未設置警告: #include <unistd.h> int main(int argc, char *argv[]) { if (argc > 0) {

    3熱度

    1回答

    我有問題重載運算符==,使用VC++(2015)和g ++ 5.4.0(--std == C++ 14)的不同編譯器錯誤。下面的代碼(這僅僅是一個在我真正的代碼庫的一個更復雜的情況摘錄): #include <vector> template<typename T> struct A { struct B { std::vector<T> _elements;

    0熱度

    1回答

    我正在設計具有共享所有權語義的容器類型。它支持切片,並因此切片共享所有權。我的一個問題是數據共享似乎會干擾常量的正確性,所以我試圖關注這一點,但是我對結果並不滿意。 下面是一個大大細分版本的我的實際代碼: #include <memory> #include <vector> #include <algorithm> template <typename T> class SharedM

    2熱度

    2回答

    目前我想知道如何正確使用std::unique_ptr作爲const正確性的成員變量。 下面的例子允許改變由my_foo所擁有的內容,儘管正在常量: #include <iostream> #include <memory> struct foo { foo() : value_ptr_(std::make_unique<int>(3)) {} void incremen