operator-overloading

    0熱度

    1回答

    我瞭解C++類的多態性的方式,它允許以相同的方式處理類及其子類。因此,如果我有一個類及其子類的多個對象,並將它們存儲在基類的(智能)指針向量中,則可以調用它們上的任何虛擬方法,它將工作得很好。 class Dancer { public: virtual void f() const { std::cout << "I am a basic dancer" << std::endl;

    2熱度

    1回答

    我想實現一個C++類,其目的是實現C風格對象的RAII機制。 然後,我需要能夠將此類的實例傳遞給所有接收提到的C風格對象作爲參數的C風格函數。我知道這應該用unique_ptr解決,但現在我不能使用C++11。無論如何,我想了解如何做到這一點,不管有沒有更好的解決方案。 我有幾個懷疑,關於我必須重載哪些操作員,以及他們之間的差異。 下面是我使用的實現代碼示例。我特別與運營商1和2(有什麼區別?)

    4熱度

    3回答

    我正在學習Kotlin,擁有C++和Java背景。我期待以下打印true,而不是false。我知道==映射到equals。 equals的默認實現是否不比較每個成員,即firstName和lastName?如果是這樣,它不會看到字符串值相等(因爲==再次映射到equal)?顯然有一些與平等和身份相關的東西,我還沒有在Kotlin中得到正確的答案。 class MyPerson(val firstN

    0熱度

    1回答

    我創建了一個ComplexNumber類。我希望能夠像做 val c = ComplexNumber(1,3); 3 * c; 但這需要重載*對於int,double等這可能嗎?

    4熱度

    2回答

    我正在寫一種矩陣庫,所以我給我的矩陣operator +,使用運算符重載。它看起來像這樣。 friend matrix<T, size_x, size_y> operator + (const matrix<T, size_x, size_y> & Input_1, const matrix<T, size_x, size_y> & Input_2){ matrix<T, size_x,

    1熱度

    1回答

    我想補充兩個班的內容,並將它們保存在其他類手術後分配對象。我創建了構造函數,參數化構造函數,析構函數和超載參數=。它工作正常進行Demo b = a;但是當我嘗試保存由a.addition(b)給出的對象,有錯誤no viable overloaded '='。我的理念是爲什麼對象沒有被複制到新創建的對象? 類演示 class Demo { int* ptr; public:

    1熱度

    2回答

    我需要讀取一個Stern(engl .: Star)對象的如下所示的txt文件中的所有屬性。我需要用""替換字符串"leer",但也可以有一個不應該被""替換的有效字符串。 即使對於另一個Stern對象也可能有"leer"而不是"Sol"。 問題: 問題是,它不與""更換"leer"。而且它似乎將"leer\\r"保存在對象中,而不是僅保存爲"leer",但我試圖替換"leer\\r",它仍然不起

    0熱度

    2回答

    我正在創建一個可以跟蹤學生的類。在這個類中,我使用overloaded =來複制這些學生對象。爲了跟蹤他們的類,我使用了一個動態數組。陣列複製得很好;但是,在清除學生對象的變量時,之前從其中複製過的任何對象也都會擦除其數組。下面是代碼: #include <iostream> #include <string> using namespace std; class Student {

    0熱度

    3回答

    所以我試圖創建一個vec類,我可以在稍後做vec數學。 工作很好,直到我開始實施它的實際程序。 類vecn: #include <vector> template <typename T> class vecn { public: vecn() { } template <typename... Args> vecn(Args&&... args)

    0熱度

    1回答

    是不是這樣的: operator<<(std::cout, 0); 與此相同? std::cout<<0; 我試過這段代碼: #include<iostream> int main() { operator<<(std::cout,0); return 0; } ,但我得到了以下錯誤消息: a.cpp: In function ‘int main()’: a