सी structs में, यह इस तरह के प्रकार के डिफ़ॉल्ट बिट लंबाई से एक और बिट लंबाई निर्दिष्ट करना संभव है:सी ++ कक्षाओं में बिट फ़ील्ड का उपयोग किया जा सकता है?
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)
}
इस बिट क्षेत्रों कहा जाता है।
मेरा प्रश्न है, तो यह भी इस तरह सी में यह करने के लिए ++ कक्षाएं, संभव है:
class MyClass{
public:
//Some methods
private:
int m_myAttribute : 1;
int m_myOtherAttribute : 4;
}
मैं इस के लिए वेब खोज की, लेकिन सभी उदाहरण मैं प्रयोग किया जाता structs, नहीं कक्षाएं बिट क्षेत्रों में पाया जाता है।
मैंने इस कोड का परीक्षण किया और यह ठीक से संकलित किया गया, लेकिन मैं जानना चाहता हूं कि गुणों का आकार वास्तव में निर्दिष्ट आकार है या यदि संकलक ने केवल बिट फ़ील्ड को अनदेखा किया है और मानक int
आकार का उपयोग किया है।
यह आपके प्रश्न का उत्तर नहीं देगा, लेकिन प्रासंगिक हो सकता है: http://stackoverflow.com/questions/3319717/is-there-a-bit-equivalent-of-sizeof-in-c –
आप इसे 'आकार' से देख सकते हैं() 'समारोह। साथ ही, जहां तक मुझे पता है, structs और कक्षाओं के बीच एकमात्र अंतर है, डिफ़ॉल्ट वर्ग चर ** निजी ** होगा, डिफ़ॉल्ट संरचना परिवर्तक ** सार्वजनिक ** होगा। आपको यहां पढ़ना चाहिए: [http://stackoverflow.com/a/7762179/1867076] – Prometheus
कक्षाएं, सी ++ में, लगभग हर तरह से structs के समान हैं। ** केवल ** अंतर डिफ़ॉल्ट पहुंच विनिर्देशक है (वर्गों के लिए - निजी, structs के लिए - सार्वजनिक) –