一、什麼是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
微信掃一掃
支付寶掃一掃