首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ class 與 struct 區別全景圖:訪問權限、繼承、初始化與模板參數

     編輯:關於C++

大括號初始化規則

  • 定義了構造函數 → **class/struct 均不可用** 大括號初始化。
  • 無構造函數 → **struct 可用**,class 不可(因成員默認 private)。
  • 無構造函數且**所有成員 public** → class 也可用。

默認訪問權限

  • class:默認 private
  • struct:默認 public

默認繼承方式

  • class Derived : Base → private 繼承
  • struct Derived : Base → public 繼承

驗證代碼:struct TT1 : T1(private 繼承)無法調用 f();class TT2 : T2(public 繼承)可調用。

模板參數關鍵字

  • template <class T> / template <typename T> → 類型參數
  • template <struct X> → **非類型模板參數**(編譯錯誤:X 未聲明標識符)

核心差異僅在於**默認訪問/繼承權限**,本質相同。選擇習慣:POJO 數據聚合用 struct,行為豐富類型用 class。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved