function-overloading

    1熱度

    2回答

    #define FALSE 0 #define TRUE 1 #define IDS_MYSTR 123 void FnVariadic(const long nIDS, ...) { std::cout << "WITHOUT option IDS" << std::endl; } void FnVariadic(const bool bOption, const l

    2熱度

    1回答

    我有一個TypeScript接口,它具有一個名爲「send」的函數,該函數被兩個允許的簽名重載。 export interface ConnectionContext { send(data: ConnectionData): void; send(data: ConnectionData, timeout: number): Promise<ConnectionData>;

    0熱度

    2回答

    我做了一個基於函數重載的程序,它由2個函數int cube(int)和float cube(float)組成。我的主函數分別讀取int x和float y的值。現在,當我運行程序時,我將一個浮點值替換爲整數va; ue並且當我在變量「x」中放置2.5(十進制值)而不是整數值時,編譯器不會問我y的值,x(int)自動爲2,y(float)爲0.5,並返回0.5的立方體。爲什麼這是發生。爲什麼0.5會

    0熱度

    1回答

    我試圖爲某些單元測試實現某種StringBuilder。問題是我在一些模板中大量使用QByteArray,它使用StringBuilder進行記錄。爲了在QString().arg()中使用QByteArray,我通常必須用QString(...)來包裝字節數組。 所以我試過如下: const char* buildCString(const QString& msg){ return

    1熱度

    2回答

    我的問題的簡化版本:我想在python中編寫一個方法,它接受一個參數,一個字符串列表或一個包含字符串列表的自定義對象。然後返回列表的大小。該方法是專門爲用戶調用,所以我希望它對用戶來說很簡單(基本上我不希望兩個方法做同樣的事情,除了一行代碼,我不想導入非python標準庫) 我認識到重載是不可能的在Python中就像它是在Java中。 什麼是一個很好的方式去這個/什麼是標準的方式?我想到的解決方案

    0熱度

    1回答

    考慮這種情況:我們編寫的代碼運行良好,直到我們包含一個頭文件,該頭文件碰巧有一個函數重載了我們原始函數之一。在這種情況下,可能會有一些地方調用函數進入重載版本以更好地匹配參數,這在邏輯上也是意想不到的。更糟的是,編譯器不會抱怨。 這裏是澄清我的問題演示: /* For simlicity, I write the codes in different files in this way; Wh

    1熱度

    2回答

    我不知道爲什麼this example含糊不清。 (我很抱歉沒有在這裏添加代碼,它太長了。) 我已經添加​​作爲超載到LazyDropWhileBidirectionalCollection。 subscript(position)在LazyPrefixCollection上定義。然而,從上面的例子中,下面的代碼不應該含糊,但它是: print([0, 1, 2].lazy.drop(while:

    0熱度

    1回答

    給出了外部庫類型的聲明。我引用它的舊零件: interface IRouterMatcher<T> { (path: PathParams, ...handlers: RequestHandler[]): T; (path: PathParams, ...handlers: RequestHandlerParams[]): T; } interface IRouterHa

    0熱度

    2回答

    我在尋找一種優雅的方式,以避免重新寫一個函數,它的實現幾乎是相同的,但只有簽名(輸入參數和數據類型的數量)是不同的。我知道函數重載在C中是不可能的。我也知道可變參數函數的存在。但我認爲他們在這種情況下不會有所幫助。 考慮下面的問題,在這裏我們需要計算一個三角形的面積。我們有兩個函數實現兩個不同的公式:S = 1/2bh和S = sqrt(s(s-a)(s-b)(s-c))。除計算面積外,每個功能還

    2熱度

    2回答

    我的類有具有相同名稱的兩個函數和以下簽名: Mat<T, rows, cols> & transpose() { for (size_t i = 0; i < rows; ++i) { for (size_t j = i + 1; j < cols; ++j) { std::swap(at(i, j), at(j, i)); } }