1.
面向過程和物件導向主要區別可以簡單概括為:面向過程的程式設計是一種直接的程式設計方法是按照編
程語言的思路考慮問題;物件導向的程式設計是一種抽象度更高的程式設計方法,它的目標是使
模組的抽象度更高,可復用性更好。
2.物件導向的三大特徵:封裝性、繼承性和多型性。
3.封裝:隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。
繼承:子類繼承父類的屬性和方法,實現**的復用。
多型:c++多型性是通過虛函式來實現的,虛函式允許子類重新定義成員函式,而子類重新定義父類的做法稱為覆蓋(override),或者稱為重寫。(這裡我覺得要補充,重寫的話可以有兩種,直接重寫成員函式和重寫虛函式,只有重寫了虛函式的才能算作是體現了c++多型性)而過載則是允許有多個同名的函式,而這些函式的引數列表不同,允許引數個數不同,引數型別不同,或者兩者都不同。編譯器會根據這些函式的不同列表,將同名的函式的名稱做修飾,從而生成一些不同名稱的預處理函式,來實現同名函式呼叫時的過載問題。但這並沒有體現多型性。
4.類和物件的關係:類是物件的抽象型別,而物件是類的具體例項。
5.結構體和類的區別:結構體成員預設是public,類成員預設是private.
6.//定義乙個圓類。屬性:圓心座標以及半徑,操作:對圓的資訊進行讀取、設
//置以及列印,計算兩個圓之間的距離。
#include
#include
using namespace std;
class cicle
float getx()
float gety()
float getr()
void print()
float d(cicle s)
};int main(int argc, const char * argv) //,,
void printthing() //default constructor
thing(int a)
thing(int a, int b)
thing(int a, int b, int c)
void printthing()
void print() ;
point::point()
point::point(float _x,float _y)
void point::print()
//—————————————— ———————————————// class circle;
circle::circle(){} //center
//point circle::circle(float x,float y,float r):center(x,y),radius(r)
void circle::setcircle(float r,point p)
void circle::print()
int main(int argc, const char * argv)
c 類和物件,建構函式,函式過載,復合類。
c 類和物件,建構函式,函式過載,復合類。1.面向過程和物件導向主要區別可以簡單概括為 面向過程的程式設計是一種直接的程式設計方法是按照編 程語言的思路考慮問題 物件導向的程式設計是一種抽象度更高的程式設計方法,它的目標是使 模組的抽象度更高,可復用性更好。2.物件導向的三大特徵 封裝性 繼承性和多...
建構函式 函式過載 復合類 析構函式
建構函式特點 注意 如果不標明public裡面的,程式預設為私有成員變數 預設建構函式分兩種 1.建構函式不帶引數 2.建構函式帶引數但引數都有預設值 eg circle 預設建構函式 circle float a 0,float b 0,float c 0 預設建構函式帶引數有預設值 circle...
C 類建構函式
類是一種使用者自定義的型別,宣告乙個類物件時,編譯程式要為物件分配儲存空間,進行必要的初始化。在c 中,這項工作是由建構函式來完成的。大部分物件在使用之前沒有正確的初始化是c 出錯的主要原因。引入類的建構函式是正確的初始化類的物件,使該物件具有區別於其他物件的特徵。一般什麼時候觸發並呼叫類的建構函式...