函式高階
函式的預設引數
如果某一函式需要引數,在函式的宣告或實現時,可以在括號中設定預設引數,如:
void
li1(
int a=10)
intli2
(int a=10,
int b=
20)
如果有預設引數,則呼叫函式時,如果沒有輸入相應引數,則使用預設引數:
int
li2(15)
則函式中a=
15,b=
20
注:如果某個位置引數有預設值,則這個位置以後,從左往右,都需要有預設引數。
錯誤用法:
void
li3(
int a,
int b=25,
int c,
int d)
同時,函式宣告和函式實現不能同時含有預設引數。
函式過載
用相同函式名定義不同的函式。
作用:函式名可以相同,提高復用性。
函式過載的滿足條件:
以下都是正確的函式過載的使用
void
li4(
int a)
void
li4(
int a,
int b)
void
li5(
int a)
void
li5(
double a)
void
li6(
int a,
double b)
void
li6(
double a,intb)
另外,
const
int 與
int 屬於不同引數型別,可以過載。
注:
void
li7(
int&a)
//1void
li7(
const
int&a)
//2int b=10;
li7(b) 呼叫的是1
li7(
10)呼叫的是2
c++封裝
c++物件導向的三大特徵為封裝,繼承,多型
class 類
封裝中,屬性和行為作為整體
以下是類的定義
//class+類名{}
class
student
};
乙個類應當需要具有屬性和行為。
許可權有:
保護許可權和私有許可權的差別主要體現在繼承中。
如果定義類時,不寫是什麼許可權,預設為私有許可權。
放在私有許可權中的成員,雖然在類外不可以呼叫,但是可以通過該類的公共許可權設定介面進行呼叫
class
idsint
get_x()
//呼叫私有許可權中的成員
private
:int x;
};
乙個類可以包含另乙個類
class
;
另外,不可以用cin來修改類的成員的值,只可以通過賦值的操作(前提是可以訪問)和類自身的行為(即函式)進行修改。
類的分檔案編寫
以下是乙個類:
class
point
intget_x()
void
write_y
(int write_y)
intget_y()
private
:int x;
int y;};
分檔案編寫方法:
1,建立標頭檔案point.h
2,在標頭檔案中包含 #include pragma once,#include
,using namespace std
3,將除了函式實現部分,都放到標頭檔案point.h中
4,建立原始檔point.cpp
5,在原始檔中,包含標頭檔案point.h,將函式實現部分放入原始檔中,並且在函式實現的函式名前面加上該標頭檔案以及兩個分號,如
void point:
:write_x
(int write_x)
完成後的point.h
#include pragma once
#include
using namespace std;
class
point
;完成後的原始檔point.cpp
#include"point.h"
//該標頭檔案為自定義標頭檔案,所以用雙引號;同時,因為該標頭檔案已包含iostream,所以不需要在這裡再包含了。
void point:
:write_x
(int write_x)
int point:
:get_x()
void point:
:write_y
(int write_y)
int point:
:get_y()
注意:如果某個類的成員中有另乙個類2,則在該類的標頭檔案中需要包含類2的標頭檔案。
Python高階 類之封裝
封裝 第乙個層面的封裝 類就是麻袋,這本身就是一種封裝第二個層面的封裝 類中定義私有的,只有在類的內部使用,外部無法訪問 第三個層面的封裝 明確區分內外,內部的實現邏輯,外部無法知曉,並且為封裝到內部的邏輯提供了乙個訪問介面給 外部使用 封裝的本質是為了明確的區分內外部。python約定 約定一 任...
自定義分頁(類封裝高階版 函式低階版)
類封裝高階版 1 自定義分頁 分頁樣式採用bootstrap 2class pagenation 3def init self,base url,current page num,total counts,request,per page counts 10,page number 5 4 5 pa...
Javascript 高階 封裝
js中處處是物件,物件導向的第一步當然就是封裝了。由於js中沒有類的概念,所以封裝起來也比較麻煩。以下介紹兩種js的封裝。1 使用約定優先的原則,將全部的私有變數以 開頭 看完 是不是有種被坑的感覺。只把全部的變數以 開頭,事實上還是能夠直接訪問的,這能叫封裝麼。當然了。說了是約定優先嘛,這樣的方式...