程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 『21天精通C++』第二周學習筆記(2-1)

『21天精通C++』第二周學習筆記(2-1)

編輯:C++入門知識

第八天:抽象數據類型是指用戶自定義的數據類型。雖然用戶使用內部類型來定義抽象數據類型但它不是內部數據類型。

"."點操作符是訪問對象變量的成員
"->"指針操作符是訪問指針指向的對象變量。
包含結構類型的的結構稱嵌套結構類型。嵌套結構類型可以再次被嵌套,訪問被嵌套的結構成員必須用兩個點操作符。
通常把類數據聲明為全局性的,把類變量聲明為局部的。並把類聲明放在頭文件中用"#include"來包含它們。
在類聲明後必須有分號。可以在聲明類的同時聲明類變量。如下:

class empData{
char empCode[8];
float wkSalary;
}emp1,emp2;

  理論上說一切變量都是對象,但VC++的對象通常是指類變量。
對象是程序聲明的某類變量,對對象的聲明稱做對某類實例化。
類的成員缺省是私有的。

  局部(塊作用域)全局(文件作用域)

  類作用域:如果一個變量有類作用域,那麼它只能在這個類中被使用。所以即使這個類變量是函數的局部變量,它的成員也未必都能被這個函數訪問。
  兩個關鍵字:public 和 private可以改變class和struct的member的缺省狀態。
關鍵字publicprivateprotected叫做訪問說明符。其中public和private決定了是否能在外部訪問類或結構的成員。

第九天:成員函數有時被稱為方法,因為它提供了一種嚴格的訪問私有數據的方法。

class ABC{
int a;//數據成員
float b;//數據成員
char c;//數據成員
};

屬性描述類的初始狀態,這個類的屬性包括一個整數成員、一個浮點成員、一個字符成員,所有這些成員組成了ABC類的屬性。
如果類中存在函數則稱為成員函數(和成員數據一樣成員函數也是類的成員)。成員函數便是此對象的行為。成員函數通常被設定為公有成員。(public)。
可以用點操作符調用類中的公有數據成員和成員函數。成員函數的基本目的就是控制程序的其他部分對私有數據的訪問。通常私有數據和公有函數組成了一個完整的對數據提供保護的類。
file://用以上學到的概念作一個撲克牌發牌程序,和一個彩票隨機出號程序。
main()函數不僅僅是一個程序的框架,還是一個高水平的組織管理系統,管理對象並且通過發送消息控制對象的行為(通過調用成員函數)。
注意:用戶只有在類變量被定義後才能賦值。只定義了類是不會有內存空間分配給它,只有定義了類變量才行。這就是說不能在類定義中初始化類的成員。
一定要在成員函數中添加參數表(可以用缺省參數表),以便在以後的程序中向成員函數傳遞參數。

成員函數並不是只能從對象外部到內部的單向數據通道,只要在成員函數中設置一個返回值,就很容易使對象的成員函數返回一個值到main()中。
建議為每個數據成員編寫只返回一個值的只讀訪問成員函數,以便main()或程序其他部分訪問某個數據時使用。
只把成員函數的原型放在類中,讓類成為一個頭文件。(包含類的簡要說明,數據成員和成員函數的原型)。把成員函數體放在類說明之後,但在main()之前。在實際的編程中把所有的類定義放在一個類的頭文件中,在程序中用"#include"包含類代碼。最好是提供類的頭文件,但事先把所有的成員函數代碼編譯好,在程序中使用它們時連接目標代碼。
把成員函數放在類定義之外時,不要忘記在函數名前冠以作用域說明符。在每個成員函數前必須冠以它所屬的類名和作用域說明符。這樣才能使它和它所屬的類匹配。格式如下:

類名::函數名(參數表)
例:
void ABC::getVals(void)

技巧:可以使用內聯函數提高類的工作效率。
通過成員函數提供數據保護這樣類不會被賦錯誤的值。
封裝是指把幾個元素包含在一個外殼中。封裝就是把數據成員和成員函數聯編在一個類中,這樣對象可以擁有屬性和行為兩方面內容。

*this指針被隱式的傳遞給所有成員函數,它指向引起這次函數調用的對象。通過傳遞*this指針,VC++告訴成員函數對哪個對象進行操作。有一些情況下必須直接對*this進行操作,但大多數情況可以忽略這個指針的存在。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved