freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第10章創(chuàng)建功能更強(qiáng)的類型(參考版)

2025-07-23 07:10本頁面
  

【正文】 如何定義類的對象,如何實(shí)現(xiàn)對象的初始化,如何操作對象。面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想是如何根據(jù)應(yīng)用的需求創(chuàng)造合適的類型,用該類型的對象來解決特定的問題。 return 0。} int main() { girl e(abc, 15)。 void disp(girl amp。 age=d。 int age。x)。 (b)。} void main() {girl e(abc, 15)。x) {coutname ageendl。 }。age=d。 int age。 }。} void disp(boy amp。 public:girl(char *n, int d) {strcpy(name,n)。 class girl { char name[10]。//或 friend class Y ……}。 ? 當(dāng) A類被說明為類 B的友元時,類 A的所有函數(shù)都是類 B的友元函數(shù) ? 聲明方法: class Y{….}。 (b)。} void main() {girl e(abc, 15)。x) {coutname ageendl。 }。} friend void girl::disp(boy amp。 public:boy(char *n, int d) {strcpy(name,n)。 class boy { char name[10]。x)。 age=d。 int age。 ? 格式: friend 函數(shù)返回類型 類名標(biāo)識符 ::函數(shù)名(參數(shù)列表 ); 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 115 友元成員實(shí)例 class boy。 } 一般必須有參數(shù) 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 114 友元成員 ? 是其他某個類的成員函數(shù) ? 可以訪問 friend聲明語句所在類的私有成員和公有成員的成員函數(shù) ? 類 A的成員函數(shù)作為類 B的友元函數(shù)時,必須先定義類 A,再定義類 B。} main() {girl e(abc, 15)。 void disp(girl amp。} friend void disp(girl amp。 public:girl(char *n, int d) {strcpy(name,n)。 } ?定義在類外 include include class girl { char name[10]。 main() {girl e(abc, 15)。x) //定義 { cout― ― endl。 age=d。 int age??陕暶髟?public部分,也可聲明在 private部分。如果類 A是類 B的友元,類 B是類 C的友元,并不意味著類 A是類 C的友元。 ? 友元關(guān)系不是對稱關(guān)系,如果類 A聲明了類 B是它的友元,并不意味著類 A也是類 B的友元。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 111 友元特點(diǎn) ? 友元關(guān)系是授予的而不是索取的。 ? 友元函數(shù)是一扇通往私有成員的后門。 … }。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 108 老版本的兼容 ? 某些舊版本的 C++不支持靜態(tài)常量 ? 解決方法:用不帶實(shí)例的枚舉類型 ? 如: class sample { enum {SIZE = 10}。 int storage[SIZE]。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 107 靜態(tài)常量成員實(shí)例 ? 例如,需要在某個類中需要用到一個數(shù)組,而該數(shù)組的大小對所有對象都是相同的,則在類中可指定一個數(shù)組規(guī)模,并創(chuàng)建一個該規(guī)模的數(shù)組。 return 0。 //通過指向?qū)ο蟮闹羔樥{(diào)用靜態(tài)成員函數(shù) delete p2。 //通過對象調(diào)用靜態(tài)成員函數(shù) delete p1。 StaticSample *p1 = new StaticSample, *p2 = new StaticSample。 //通過類名限定調(diào)用成員函數(shù) StaticSample s1, s2。 //靜態(tài)數(shù)據(jù)成員的定義及初始化 int StaticSample::obj_living = 0。} }。} ~StaticSample() {obj_living。 public: StaticSample() {++obj_count。 class StaticSample { private: static int obj_count。為了知道某一時刻對象個數(shù)的信息,可以定義一個靜態(tài)的成員函數(shù)返回這兩個值。 ? 成員函數(shù):要實(shí)現(xiàn)計(jì)數(shù)功能,我們可以在創(chuàng)建一個對象時,對這兩個數(shù)各加 1。} 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 102 靜態(tài)成員函數(shù)實(shí)例 2 ? 在程序執(zhí)行的某個時刻,有時需要知道某個類已創(chuàng)建的對象個數(shù),現(xiàn)在仍存活的對象個數(shù)。} int goods::weight() {return weight。 total_weight+=w。 int goods::total_weight = 0。 static int totalweight()。 ~goods()。 static int total_weight。在類外定義時,不用 static。為此可以設(shè)置一個靜態(tài)的成員函數(shù) static void SetRate(double newRate) {rate = newRate。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 99 靜態(tài)成員函數(shù)的用途 ? 定義靜態(tài)成員函數(shù)的主要目的是訪問靜態(tài)的數(shù)據(jù)成員。因此,靜態(tài)成員函數(shù)無法處理類中的非靜態(tài)成員變量。如有個 SavingAccount類的對象 obj,則可以用: ? 由于是整個類共享的,因此不管用哪種調(diào)用方式,得到的值都是相同的 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 98 靜態(tài)成員函數(shù) ? 成員函數(shù)也可以是靜態(tài)的。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 97 靜態(tài)變量的使用 ? 可以通過作用域操作符從類直接調(diào)用。 該定義為 rate分配了空間,并給它賦了一個初值 。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 96 靜態(tài)成員變量的定義 ? 為靜態(tài)成員分配空間稱為靜態(tài)成員的定義 ? 靜態(tài)成員的定義一般出現(xiàn)在類的實(shí)現(xiàn)文件中。 //存款額 static double m_rate。 //存戶姓名 char m_addr[60]。m_rate應(yīng)該獨(dú)立于各對象之外,成為整個類個對象共享的資料。 這家銀行采用浮動利率,每個帳戶的利息根據(jù)當(dāng)天的掛牌利率計(jì)算。 //存款額 double m_rate。 //存戶姓名 char m_addr[60]。 //對象 a的 SIZE的值為 100 A b(200)。 //構(gòu)造函數(shù) const int SIZE。 //錯誤,未知的 SIZE }; 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 91 const數(shù)據(jù)成員的初始化 ? const數(shù)據(jù)成員的初始化只能在類構(gòu)造函數(shù)的初始化表中進(jìn)行,不能在構(gòu)造函數(shù)中對他賦值。 class A { //錯誤,企圖在類聲明中初始化 const數(shù)據(jù)成員 const int SIZE = 200。 … }。 ? 常量成員的聲明 在該成員聲明前加上 const。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 88 第 10章 創(chuàng)建功能更強(qiáng)的類型 ? 從面向過程到面向?qū)ο? ? 類的定義 ? 對象的使用 ? 對象的構(gòu)造與析構(gòu) ? 常量對象與 const成員函數(shù) ? 常量數(shù)據(jù)成員 ? 靜態(tài)數(shù)據(jù)成員與靜態(tài)成員函數(shù) ? 友元 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 89 常量成員 ? const數(shù)據(jù)成員只在某個對象生存期內(nèi)是常量,而對于整個類而言卻是可變的。 //錯誤,修改了數(shù)據(jù)成員 x return x。 public: A(int i) {x=i。 int A::getx() const { return x。 public: A(int i) {x=i。} }。 public: A(int i) {x=i。如果在編寫 const成員函數(shù)時,不慎修改了數(shù)據(jù)成員,或者調(diào)用了其他非 const成員函數(shù),編譯器將指出錯誤,這無疑會提高程序的健壯性。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 84 如何保證數(shù)據(jù)成員不被修改 ? 數(shù)據(jù)成員一般都由成員函數(shù)修改。 return 0。 int main() { create()。 cout \nCREATE FUNCTION: EXECUTION ENDS endl。 static CreateAndDestroy sixth( 6)。 } 用戶程序 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 80 void create( void ) { cout \nCREATE FUNCTION: EXECUTION BEGINS endl。 cout \nMAIN FUNCTION: EXECUTION ENDS endl。 cout \nMAIN FUNCTION: EXECUTION RESUMES endl。 static CreateAndDestroy third( 3,)。 int main() { cout \nMAIN FUNCTION: EXECUTION BEGINS endl。 } CreateAndDestroy::~CreateAndDestroy() { cout Object objectID destructor runs endl。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 78 CreateAndDestroy::CreateAndDestroy( int ID) { objectID = ID。 private: int objectID。} 消失順序: 局部變量先消失,然后是靜態(tài)局部變量, 最后是全局變量; 后創(chuàng)建的先消失; lTime2析造函數(shù) lTime1析造函數(shù) sTime析造函數(shù) gTime2析造函數(shù) 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 77 變量生命周期的驗(yàn)證CreateAndDestroy類定義 class CreateAndDestroy { public: CreateAndDestroy( int, string )。 static Time sTime。 Time lTime2。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 75 類變量的生命周期 ? 與普通的內(nèi)置類型的變量完全相同 Time gTime; int main() { Time lTime1。 … return a。 ? 函數(shù)調(diào)用 f(arr)。 ()。 ()。 ()。 void main() {point p1(10, 20), p2(p1), p3 = p1, p4(1, 2)。} void print() {coutx yendl。p) {x=2*。 y=b。 ? 用“ =‖符號 DoubleArray array = array1; 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 72 自定義拷貝構(gòu)造函數(shù)舉例 class point{ int x, y。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 70 拷貝構(gòu)造函數(shù)的應(yīng)用場合 ? 對象定義時 ? 函數(shù)調(diào)用時,把對象作為參數(shù)傳給值傳遞的形式參數(shù) ? 把對象作為返回值時 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 71 對象定義時 ? 將初始值放在圓
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1