c++物件導向的三大特性:封裝、繼承、多型
c++認為萬事萬物皆為物件,物件上有其屬性和行為
封裝意義:
1、將屬性和行為作為乙個整體,表現生活中的事物
語法: class 類名;
例項:設計乙個圓類,求圓的周長
#include#includeusing
namespace
std;
//設計乙個圓類,求圓的周長
//圓周長公式:2 * pai * 半徑
const
double pai = 3.14; //
圓周率//
class設計乙個類,類後面緊跟著的就是類名稱
class
circle
};int
main()
例項2:
建立乙個學生類,屬性為學號和姓名,可以給姓名學號賦值,可以顯示學生的姓名和學號
#include#includeusing
namespace
std;
class
student
};int
main()
通過行為給屬性賦值:
#include#includeusing
namespace
std;
class student //
類中的屬性和行為稱為:成員
//給姓名賦值
void setname(string
name)
//給學號賦值
void setid(int
id)
};int
main()
2、將屬性和行為加以許可權控制
訪問許可權有三種:1、public-公共許可權;2、protected-保護許可權;3、private-私有許可權;
#include#includeusing
namespace
std;
//訪問許可權
//1、public-公共許可權 成員 類內可以訪問 類外也可以訪問
//2、protected-保護許可權 成員 類內可以訪問 類外不可以訪問 子類可以訪問父類保護許可權內的內容
//3、private-私有許可權 成員 類內可以訪問 類外不可以訪問 子類無法訪問父類私有許可權內的內容
class
person;};
intmain()
struct和class區別
在c++中,struct的預設許可權為公共,class的預設許可權為私有。
#include#includeusing
namespace
std;
//class 和 struct 區別
classc1;
structc2;
intmain()
成員屬性設為私有
優點1、將所有成員屬性設定為私有,可以自己控制讀寫許可權
#include#includeusing
namespace
std;
//成員屬性設為私有
//1、將所有成員屬性設定為私有,可以自己控制讀寫許可權
class
person
//讀姓名 -> 獲取姓名
string
getname()
//讀年齡 -> 獲取年齡
intgetage()
//寫情人 -> 設定情人
void setlover(string
lover)
private
:
//姓名 可讀可寫
string
m_name;
//年齡 唯讀
intm_age;
//情人 只寫
string
m_lover;
};int
main()
優點2、對於寫許可權,我們可以檢測資料的有效性
#include#includeusing
namespace
std;
//成員屬性設為私有
//2、對於寫許可權,我們可以檢測資料的有效性
class
person
//讀姓名 -> 獲取姓名
string
getname()
//讀年齡 -> 獲取年齡
intgetage()
//寫年齡 -> 設定年齡
void setage(int
age)
m_age =age;
}//寫情人 -> 設定情人
void setlover(string
lover)
private
:
//姓名 可讀可寫
string
m_name;
//年齡 可讀可寫
intm_age;
//情人 只寫
string
m_lover;
};int
main()
C 核心程式設計 04類和物件 封裝
c 物件導向程式設計的三大特徵為 封裝 繼承 多型 c 認為萬事萬物皆為物件,物件上有其屬性和行為 封裝是c 物件導向三大特性之一 封裝的意義 1 將屬性和行為作為乙個整體,表現生活中的事物 2 將屬性和行為加以許可權控制 封裝意義一 在設計類的時候,屬性和行為寫在一起,表現事物 語法 class ...
C 核心程式設計 4 類和物件 友元
黑馬程式設計師匠心之作 c 教程從0到1入門程式設計 學習筆記 本階段主要針對c 物件導向程式設計技術做詳細講解,c 中的核心和精髓 在程式裡,有些私有屬性,也想讓類外特殊的一些函式或者類進行訪問,就需要用到友元的技術。友元的目的就是讓乙個函式或者類,訪問另乙個類中的私有成員。友元的關鍵字為frie...
C 核心程式設計 4 類和物件 多型(7)
4.7 多型 4.7.1 多型的基本概念 多型是c 物件導向三大特性之一,多型分為兩類 靜態多型 動態多型。靜態多型 函式過載和運算子過載屬於靜態多型,復用函式名 動態多型 派生類和虛函式實現執行時多型 區別 靜態多型的函式位址早繫結 編譯階段確定函式位址 動態多型的函式位址晚繫結 執行階段確定函式...