static-cast

    1熱度

    2回答

    請考慮以下示例代碼。 #include <iostream> using namespace std; class base { public: void func() { cout << "base::func()" << endl; } }; class derived : public base { p

    0熱度

    1回答

    我在製作需要由第三方庫使用的回調包裝類方法時遇到了一些麻煩; JackAudio library。 我已經能夠爲需要兩個參數的JackAudio回調函數創建一個包裝。 我只是在創建需要const char *作爲參數的特定函數的回調函數時遇到問題。 到目前爲止,我已經能夠使JackAudio庫jack_set_sample_rate_callback功能使用自定義類,可以像這樣執行: SoundC

    1熱度

    1回答

    背景: 我建立一個物理引擎,在C++中,計算一個正的引力變化笛卡爾空間中的身體系統,然後將其轉換爲任何預定義的座標系統。最終目標是使起始座標系統成爲任意角度(在座標系統'n'中而不是笛卡爾座標系中計算),但這是一個遙遠的目標。 問題: 由於座標系被認爲是可互換的,我已經做了笛卡爾座標系延伸的基部座標系統: class CoordMember { } class CoordState {

    0熱度

    1回答

    如果我們看到下面的代碼,fun函數會將C的對象轉換爲B的對象並調用B的自己的函數。它怎麼不給segm過錯。我認爲這會導致崩潰。 我的程序沒有崩潰。任何人都可以解釋爲什麼它工作正常。 #include<iostream> using namespace std; class A{ public: A() {cout<<"A's Con\n"; } ~A() {cout<<"

    1熱度

    4回答

    請注意以下代碼。據我所知,dynamic_cast比static_cast慢。因爲它在運行時評估類型。 我的疑問是,如果我們使用typeid()的static_cast作爲下面,它將需要相同的時間作爲動態演員? 它會比dynamic_cast更快嗎? class Shape { public: virtual ~Shape(){} }; class Circle : public

    1熱度

    1回答

    有什麼東西我不明白我希望你注意下放,請檢查這些代碼片段: template< typename DerivedClass > class construction_management { city* this_city; public: construction_management() { this_city = static_cast< cit

    4熱度

    2回答

    我有點困惑如何將對象傳遞給pthread_create函數。我發現很多零散的信息關於轉換爲void *,將參數傳遞給pthread_create等,但沒有任何關聯它們。我只是想確保我將它們聯繫在一起,並沒有做任何愚蠢的事情。假設我有以下線程類: 編輯:固定錯誤匹配static_cast。 class ProducerThread { pthread_t thread; pthr

    -1熱度

    1回答

    的問題是非常簡單的,它是一般安全靜態澆鑄(或一些其他劇組)從 std::vector<Foo> 到 std::vector< const Foo > 二進制明智的,我不明白爲什麼本地類型會有所不同,畢竟const是一種語言的限制,不應該影響元素的大小,還是讓我覺得 我可以做 std::vector< const Foo >& someFunc() { std::vector<F

    5熱度

    4回答

    這是我的問題。我有一個基類和一個派生類,它覆蓋了基類中的一些方法。爲簡單起見考慮下面的例子: struct base { virtual void fn() {/*base definition here*/} }; struct derived : base { void fn() {/*derived definition here*/} }

    3熱度

    3回答

    行,所以我試着這樣做 int b; char x = 'a'; //Case 1 b = static_cast<int>(x); std::cout<<"B is : "<<b<<std::endl; //Case 2 b = *(int*)&x; std::cout<<"B is changed as :: "<< b <<std::endl; 現在我知道的情況下,2,