8月12 union的使用

2021-05-23 07:52:02 字數 719 閱讀 3387

一、在union中儲存物件

在c中union中可以儲存任意型別的內建資料型別,那麼在c++中union是否可以儲存物件呢?還是讓我們看乙個例子吧,這比任何言語都能說明問題,不是嗎?

#pragma warning(disable : 4786)

#include

using namespace std;

class testunion

;int data_;

};typedef union _tagutype_

ut;int main (void)

這樣不行,union中不可以儲存testunion類的物件,但在c中union可以儲存struct呀,為什麼不能儲存類的物件呢?很簡單,請問,在c中union可以儲存帶有建構函式的struct嗎?對了,在c中的struct是沒有建構函式的。所以如果c++中union可以儲存有建構函式的類的物件就不太符合邏輯,那不是說c++和c完全相容嗎?不錯,正因為這一點,c++中union不可以儲存有建構函式的類的物件,但是可以儲存不帶建構函式的類的物件,這樣就和c保持一致了,不想信你試試。對testunion類的宣告進行如下修改:

class testunion;

再進行編譯,一切ok!。但是這樣卻失去了c++的構造初始化特性,這樣做是沒有任何意義的,我只是在說其在c++中的語義,並不是推薦大家使用(絕對不推薦)。但是我們可以在union中儲存物件的指標,從而引用不同的物件型別。不用我再多說了吧,大家還是試試吧

8月12日小結

今天寫的題目比較少,精力基本都用來研究單調佇列,單調棧,借助老師的課件和大神們的部落格,仔細的研究了單調佇列,單調棧的原理,在紙上一步步推算,爭取弄懂每個步驟的原理,一天看下來,單調棧和單調佇列原理是懂了,可是到了做題上,思路卻比較少,不知道怎麼應用,還需要多看點題目,研究一下常見題型,拓寬一下思路...

8月12日訓練日記

今天上午把重點放在了做題上面,上午還是做了一些二分和單調佇列的題目,掌握還是不太紮實,下午的時候重點放在了複習知識點上面,看了一下有關二分的部落格,感覺自己眼光真的狹隘了,有些內容自己還是沒接觸到的,沒了解到的知識還是有很多,眼光不夠寬廣,所以還是需要多看題目。到現在,給我感覺最深的就是二分搜尋的最...

2023年12月8日日誌

這一天沒有做任何有意義的工作,完全停滯。一整天都在為乙個設計人員裝系統,這讓我很沮喪。如果讓我待在自己的電腦旁邊,我會很有成績的做好一大部分工作。可是我今天除了給他安裝作業系統以外,就只是坐著,漫無目的的刷手機,看各種帖子。這種兩種生活展現出來的絕不是自我約束的問題,而是資源錯配。乙個人,放在乙個錯...