一、什麼是struct
在C++中,struct是一種用於定義自定義數據類型的關鍵字,它可以將不同類型的數據組合起來,形成一個新的數據類型。通常情況下,struct可以包含成員變數和成員函數。
二、如何定義一個struct
struct Person { std::string name; int age; double score; };
上面的代碼定義了一個名為Person的struct,它包含3個成員變數:name,age和score。其中,name是字元串類型,age和score分別是整型和雙精度浮點型。
三、如何使用struct
結構體變數的定義方式與其他基本類型變數的定義方式相同。
Person p1; // 定義Person結構體的變數p1
而且可以使用.(點)運算符來訪問結構體中的成員變數。
p1.name = "張三"; p1.age = 18; p1.score = 90.5; std::cout << p1.name << "今年" << p1.age << "歲,考了" << p1.score << "分。" << std::endl;
上述代碼就是給p1的成員變數賦值,並且輸出了這些值。
四、struct可以實現面向對象編程
雖然C++中有class關鍵字,但是struct也可以實現面向對象編程的功能。我們可以在struct中定義成員函數,從而實現封裝、繼承和多態等面向對象編程的概念。
struct Person { std::string name; int age; double score; double getScore() { return score; } }; struct Student : public Person { std::string school; std::string getSchool() { return school; } }; int main() { Student s1{"張三", 18, 90.5, "清華大學"}; std::cout << s1.name << "今年" << s1.age << "歲,在" << s1.getSchool() << "讀書,考了" << s1.getScore() << "分。" << std::endl; return 0; }
在上述代碼中,我們在Person結構體中定義了getScore()函數,接著在Student結構體中用public繼承了Person,再定義了getSchool()函數(本來可以把這個函數寫在父類中的),最後在main函數中實例化一個學生對象s1,並調用了它的getScore()和getSchool()函數。
五、結語
C++中的struct可以很方便地用來定義自定義數據類型,同時也可以實現面向對象編程的功能。掌握這一特性,可以讓我們更好地完成一些複雜的編程任務,提高了編程的效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/154766.html