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

正文內(nèi)容

[計算機軟件及應用]c面向?qū)ο蟪绦蛟O計(編輯修改稿)

2024-11-15 04:03 本頁面
 

【文章內(nèi)容簡介】 錯誤 }。 對象的初始化常采用以下兩種方法 : 1. 調(diào)用 普通的成員函數(shù) 來完成 2. 調(diào)用 構(gòu)造函數(shù) 來完成 class Date{ public: void setDate(int y,int m,int d)。 void showDate()。 private: int year。 int month。 int day。 }。 … int main() { Date date1。 (2021,4,28)。 … return 0。 } 調(diào)用對象 date1的公有成員函數(shù) setDate,給 date1的私有數(shù)據(jù)成員賦初值 ,初始化后: =2021 =4 =28 普通成員函數(shù) 對對象進行初始化 在建立對象的時 ,采用構(gòu)造函數(shù)給數(shù)據(jù)成員賦初值 ,通常有以下兩種形式。 形式 1: 類名 對象名 [(實參表 )]。 這里的 “ 類名 ” 與構(gòu)造函數(shù)名相同 ,“實參表 ” 是為構(gòu)造函數(shù)提供的實際參數(shù)。 構(gòu)造函數(shù) 對對象進行初始化 構(gòu)造函數(shù)是一種特殊的成員函數(shù),它主要用于 : (1) 為對象分配空間 (2) 為對象的數(shù)據(jù)成員進行初始化 (3) 其他指定的任務 includeiostream//例 using namespace std。 class Date{ public: Date(int y,int m,int d)。 //聲明構(gòu)造函數(shù) Date的原型 void showDate()。 private: int year。 int month。 int day。 }。 Date::Date(int y,int m,int d) //定義構(gòu)造函數(shù) Date {year=y。 month=m。 day=d。 } inline void Date::showDate() { coutyear.month.dayendl。 } int main() { Date date1(2021,4,28)。 ()。 return 0。 } (3) 定義類 Date的對象 date1,調(diào)用構(gòu)造函數(shù) , 給對象 date1的數(shù)據(jù)成員賦初值 (2) 構(gòu)造函數(shù)可以有任意類型的參數(shù),但不能具有返回類型 (1)構(gòu)造函數(shù)的名字必須與類名相同 通常 ,利用構(gòu)造函數(shù)建立對象有以下二種方法 : (1) 一般形式為 : 類名 對象名 (實參表 )。 例如 : plex A(,)。 類名 對象名 實參表 在建立對象的時 ,采用構(gòu)造函數(shù)對對象進行初始化 ,通常有以下兩種形式 : 形式 1: 例如 : Date date1(2021,4,28)。 類名 對象名 實參表 建立對象時,編譯系統(tǒng)會自動地調(diào)用構(gòu)造函數(shù) ,對對象進行初始化 類名 對象名 [(實參表 )]。 形式 2: 其一般語法形式為 : 例如 : Date *pdate = new Date(2021,4,28)。 類名 *指針變量名 =new 類名 (實參表 )。 指針 pdate指向該對象的地址 對象名 : 匿名對象 ,或稱對象名是 (*pdate) 此時 ,應使用 “ ”來訪問對象的成員 ,而不是 “ .” 。 類名 *指針變量名 =new 類名 [(實參表 )]。 將例 。 int main() { Date *pdate = new Date(2021,4,28)。 pdateshowDate()。 delete pdate。 return 0。 } 利用構(gòu)造函數(shù)創(chuàng)建對象的另一種方法 :用指針和 new來實現(xiàn) 。 說明 : (1) 構(gòu)造函數(shù)的名字必須與類名相同,否則編譯程序?qū)阉斪饕话愕某蓡T函數(shù)來處理。 (2) 構(gòu)造函數(shù)沒有返回值,在聲明和定義構(gòu)造函數(shù)時,是不能說明它的類型的,甚至說明為 void類型也不行。 例如上述構(gòu)造函數(shù)不能寫成 void Date(int y,int m,int d)。 說明為 void類型也不行 (3) 與普通的成員函數(shù)一樣 ,構(gòu)造函數(shù)的函數(shù)體可寫在類體內(nèi) ,也可寫在類體外。 如例 Date可以聲明如下 : class Date { public: Date(int y,int m,int d) // 構(gòu)造函數(shù)定義在類內(nèi) { year=y。 month=m。 day=d。} void showDate() { coutyear.month.dayendl。 } private: int year。 int month。 int day。 }。 構(gòu)造函數(shù)的函數(shù)體也可 寫在類體外 (4) 構(gòu)造函數(shù)一般聲明為公有成員 ,但它不需要也不能像其他成員函數(shù)那樣被顯式地調(diào)用 ,它是在定義對象的同時被自動調(diào)用的。 例如 ,下面的用法是錯誤的 : (2021,4,28)。 (5) 構(gòu)造函數(shù)可以是不帶參數(shù)的。 例如: class A { private: int x; public: A( ) { x=50; } … }; int main() { A a。 … } 構(gòu)造函數(shù)可以不帶參數(shù) 定義類 A的對象 a時 ,調(diào)用不帶參數(shù)的構(gòu)造函數(shù)給數(shù)據(jù)成員 x賦初值 50 用成員初始化表對數(shù)據(jù)成員初始化 class A{ int i; float f; public: A(int i1, float f1) { i=i1; f=f1; } }。 class A{ int i; float f; public: A(int i1, floatf1 ):i(i1),f(f1) { } }。 在構(gòu)造函數(shù)中一般用賦值語句 對數(shù)據(jù)成員的初始化進行 C++還提供另一種初始化數(shù)據(jù)成員的方法 用 成員初始化列表 來實現(xiàn)對數(shù)據(jù)成員的初始化。 帶有成員初始化列表的構(gòu)造函數(shù)的一般形式如下 : 成員初始化列表的一般形式為 : 類名 ::構(gòu)造函數(shù)名 ([參數(shù)表 ])[:(成員初始化列表 )] { 構(gòu)造函數(shù)體 } 數(shù)據(jù)成員名 1(初始值 1),數(shù)據(jù)成員名 2(初始值 2),… includeiostream //例 using namespace std。 class Date{ public: Date(int y,int m,int d)。 //聲明構(gòu)造函數(shù)的原型 void showDate()。 private: int year。 int month。 int day。 }。 Date::Date(int y,int m,int d):year(y),month(m),day(d) { } void Date::showDate() { coutyear.month.dayendl。 } int main() { Date date1(2021,4,28)。 //定義類 Date的對象 date1 ()。 return 0。 } 定義構(gòu)造函數(shù)Date(),使用成員初始化表對數(shù)據(jù)成員初始化 運行結(jié)果如下 : 說明 :數(shù)據(jù)成員是按照它們 在類中聲明的順序 進行初始化的 ,與它們在成員初始化列表中列出的順序無關 。 練習 1 寫出以下程序的運行結(jié)果 。 includeiostream using namespace std。 class D { int mem1。 int mem2。 public: D(int i):mem1(i),mem2(mem1+1) { coutmem1: mem1endl。 coutmem2: mem2endl。 } }。 void main() { D d(15)。 } 相當于 : mem1=i。 mem2=mem1+1 運行結(jié)果為: mem1: 15 mem2: 16 includeiostream using namespace std。 class D { int mem1。 int mem2。 public: D(int i):mem2(i),mem1(mem2+1) { coutmem1: mem1endl。 coutmem2:mem2endl。 } }。 void main() { D d(15)。 } 相當于 : mem2=i。 mem1=mem2+1。 請問:運行結(jié)果? mem1: 16 mem2: 15 實際運行結(jié)果 : mem1: 858993459 mem2: 15 原因: 不是按照 構(gòu)造初始化表 的順序?qū)?shù)據(jù)成員進行初始化 而是按照 數(shù)據(jù)成員在類里被聲明的順序進行初始化 練習 2 includeiostream using namespace std。 class D { int mem1。 int mem2。 public: D(int i):mem2(i),mem1(mem2+1) { coutmem1: mem1endl。 coutmem2:mem2endl。 } }。 void main() { D d(15)。 } 初始化過程 : =mem2+1=隨機數(shù) =i=15 程序結(jié)果如下 : mem1: 858993459 mem2: 15 解決方法 ?? 練習 2 分析錯誤原因 //練習 2 includeiostream using namespace std。 class D { int mem2。 int mem1。 public: D(int i):mem2(i),mem1(mem2+1) { coutmem1: mem1endl。 coutmem2:mem2endl。 } }。 void main() { D d(15)。 } 將 mem1和 mem2交換 運行結(jié)果為: mem1: 16 mem2: 15 析構(gòu)函數(shù) 析構(gòu)函數(shù)也是一種特殊的成員函數(shù)。它執(zhí)行與構(gòu)造函數(shù)相反的操作,通常用于執(zhí)行一些清理任務,主要有: 1. 釋放分配給對象的內(nèi)存空間。 2. 其他指定的任務 class Student{ //帶構(gòu)造函數(shù)的學生類 private: int number。 float score。 public: Student(int number1,float score1)。 ~Student( ){ cout“destructing”。} }。 Student :: Student(int number1,float score1) { number=number1。 score=score1。 } 構(gòu)造函數(shù) 析構(gòu)函數(shù) class Student{ private: int number。 float score。 public: Student(int number1,float score1)。 ~Student( ){ cout“destructing”。} }。 Student :: Student(int number1,float score1) { number=number1。 score=score1。 } ① 析構(gòu)函數(shù)
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1