在C的結構,所以能夠指定不同於類型的默認位長度這樣另一個位長度:可以在C++類中使用位字段嗎?
struct MyStruct{
int myVar : 1; //Size of myVar is 1 bit (so it can take values 0 or 1
int myOtherVar: 4; //Size of myOtherVar is 4 bits (so it can take values 0 to 15)
}
這就是所謂的位字段。
我的問題是,如果它也可以做到這一點的C++類,像這樣:
class MyClass{
public:
//Some methods
private:
int m_myAttribute : 1;
int m_myOtherAttribute : 4;
}
我搜索了這個網站,但我所有的例子中使用的結構,而不是類位字段。
我測試了這段代碼,它編譯得很好,但是我想知道屬性的大小是否真的是指定的大小,或者編譯器是否忽略了這些位域並使用了標準大小的int
大小。
這不會回答你的問題,但可能是相關的:http://stackoverflow.com/questions/3319717/is-there-a-bit-equivalent-of-sizeof-in-c –
你可以檢查它'sizeof ()'功能。另外,就我所知,結構和類之間的唯一區別是,默認類變量將是** private **,默認結構變量將是** public **。您應該閱讀這裏:[http://stackoverflow.com/a/7762179/1867076] – Prometheus
C++中的類幾乎在所有方面都與結構相同。 ** only **區別是默認訪問說明符(對於類 - 私有,對於結構體 - 公共) –