c++中struct和class的區(qū)別小結
前言
在C++中,class和struct都是用于定義自定義數(shù)據(jù)類型的關鍵字,但它們之間有一些區(qū)別。這些區(qū)別主要涉及成員的默認訪問權限和繼承。
正題
成員的默認訪問權限:
- 在class中,默認情況下,成員的訪問權限是private,這意味著除了類的內部,其他地方無法直接訪問類的私有成員。
- 在struct中,默認情況下,成員的訪問權限是public,這意味著類的外部也可以直接訪問結構體的成員。
繼承:
- 當使用class定義類時,默認的繼承訪問權限是private,這意味著基類的成員對派生類是private的,除非通過繼承控制符進行了顯式修改。
- 當使用struct定義類時,默認的繼承訪問權限是public,這意味著基類的成員對派生類是public的,除非通過繼承控制符進行了顯式修改。
以下是一個示例,演示了class和struct之間的區(qū)別:
#include <iostream>
class ClassExample {
? ? int privateMember;
public:
? ? int publicMember;
? ? ClassExample() : privateMember(0), publicMember(0) {}
? ? void ShowPrivate() {
? ? ? ? std::cout << "Private: " << privateMember << std::endl;
? ? }
};
struct StructExample {
? ? int privateMember;
public:
? ? int publicMember;
? ? StructExample() : privateMember(0), publicMember(0) {}
? ? void ShowPrivate() {
? ? ? ? std::cout << "Private: " << privateMember << std::endl;
? ? }
};
int main() {
? ? ClassExample classObj;
? ? StructExample structObj;
? ? classObj.publicMember = 42;
? ? structObj.publicMember = 42;
? ? classObj.privateMember; ? // 無法訪問,因為 privateMember 是 private 的
? ? structObj.privateMember; ?// 可以訪問,因為 privateMember 是 public 的
? ? return 0;
}總之,class和struct的主要區(qū)別在于默認的成員訪問權限和繼承訪問權限。然而,這兩者在其他方面都可以用來定義類,包括成員變量、成員函數(shù)、構造函數(shù)等。選擇使用哪個關鍵字取決于你希望如何組織和訪問類的成員。
到此這篇關于c++中struct和class的區(qū)別小結的文章就介紹到這了,更多相關c++ struct class內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Qt(C++)調用工業(yè)相機Basler的SDK使用示例
這篇文章主要介紹了Qt(C++)調用工業(yè)相機Basler的SDK使用示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03
C++數(shù)據(jù)結構二叉搜索樹的實現(xiàn)應用與分析
從這篇博客開始,我就要和大家介紹有關二叉搜索樹的知識,它還衍生出了兩棵樹——AVL樹和紅黑樹,在后面兩篇博客我都會介紹。今天先從二叉搜索樹開始引入2022-02-02

