中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

電影網(wǎng)站網(wǎng)頁設(shè)計上海好的網(wǎng)絡(luò)推廣公司

電影網(wǎng)站網(wǎng)頁設(shè)計,上海好的網(wǎng)絡(luò)推廣公司,深圳做網(wǎng)站推廣公司哪家好,深圳集團網(wǎng)站開發(fā)前言 后天考c&#xff0c;但這幾天得甲流了&#xff0c;特別難受&#xff01;復習c的時候復習著忘著&#xff0c;所以用csdn記錄一下不熟悉的知識點&#xff0c;等后天考前再看一遍&#xff01; 函數(shù)模板 #include <iostream>// 定義一個模板類 template <class T1…

前言

后天考c++,但這幾天得甲流了,特別難受!復習c++的時候復習著忘著,所以用csdn記錄一下不熟悉的知識點,等后天考前再看一遍!

函數(shù)模板

#include <iostream>// 定義一個模板類
template <class T1, typename T2>
class Pair {
private:T1 first;T2 second;public:// 構(gòu)造函數(shù)Pair(T1 f, T2 s) : first(f), second(s) {}// 獲取第一個元素T1 getFirst() const {return first;}// 獲取第二個元素T2 getSecond() const {return second;}
};int main() {// 使用模板類 Pair,其中 T1 為 int,T2 為 doublePair<int, double> myPair(1, 3.14);// 輸出結(jié)果std::cout << "First: " << myPair.getFirst() << std::endl;std::cout << "Second: " << myPair.getSecond() << std::endl;return 0;
}

?T:類型參數(shù),實際上是一個虛擬的類型名;
?class 和typename的作用相同,都表示“類型名”,可互換

引用

格式:?<類型> ? &<引用變量名> = <原變量名>;

其中原變量名是定義好的變量

不能建立引用的引用,也沒有引用的指針

引用的用途主要是用來作函數(shù)的參數(shù)或函數(shù)的返回值

類和結(jié)構(gòu)體類型的異同

用struct聲明的類,如果對其成員不作private或public的聲明,系統(tǒng)將其默認為public

而用class定義的類,如果不作private或public聲明,系統(tǒng)將其成員默認為private,在需要時也可以自己用顯式聲明改變

如果希望成員是公用的,使用struct比較方便,如果希望部分成員是私有的,宜用class

建議盡量使用class來建立類,寫出完全體現(xiàn)C++風格的程序

成員函數(shù)的存儲方式

每個對象所占用的存儲空間只是該對象的數(shù)據(jù)部分所占用的存儲空間,而不包括函數(shù)代碼所占用的存儲空間

不同的對象使用的是同一個函數(shù)代碼段,它怎么能夠分別對不同對象中的數(shù)據(jù)進行操作呢?

C++為此專門設(shè)立了一個名為this的指針,用來指向不同的對象

應(yīng)當說明: 常說的“某某對象的成員函數(shù)”,是從邏輯的角度而言的,而成員函數(shù)的存儲方式,是從物理的角度而言的,二者是不矛盾的

構(gòu)造函數(shù)

如果用戶未定義構(gòu)造函數(shù),系統(tǒng)會自動提供一個默認構(gòu)造函數(shù),但函數(shù)體是空的,不提供初始化作用

如果用戶僅僅寫了一個有參構(gòu)造函數(shù),那么上述這個默認構(gòu)造函數(shù)就會“消失”,比如:

構(gòu)造函數(shù)也可以由默認值,應(yīng)該在聲明構(gòu)造函數(shù)時指定

聲明構(gòu)造函數(shù)時,形參名可以省略,Box(int = 10,int = 10,int = 10)

構(gòu)造函數(shù)帶默認值時很容易和重載的構(gòu)造函數(shù)產(chǎn)生歧義性,比如

Box();

Box(int = 10,int = 10,int = 10);

析構(gòu)函數(shù)

析構(gòu)函數(shù)不能被重載;一個類可以有多個構(gòu)造函數(shù),只能有一個析構(gòu)函數(shù)

static局部對象,只在main函數(shù)結(jié)束或調(diào)用exit函數(shù)結(jié)束程序時調(diào)用析構(gòu)函數(shù)

全局對象,則在程序的流程離開其作用域時(如main函數(shù)結(jié)束或調(diào)用exit函數(shù)) 時調(diào)用析構(gòu)函數(shù)

對于靜態(tài)局部對象,只在程序第一次調(diào)用此函數(shù)建立對象時調(diào)用構(gòu)造函數(shù)一次,在調(diào)用結(jié)束時對象并不釋放,因此也不調(diào)用析構(gòu)函數(shù),只在main函數(shù)結(jié)束或調(diào)用exit函數(shù)結(jié)束程序時,才調(diào)用析構(gòu)函數(shù)

常對象

定義常對象的形式為:

類名 const 對象名[(實參表列)];

const 類名 對象名[(實參表列)];

常對象必須要有初值,所有成員的值都不能被修改。凡希望保證數(shù)據(jù)成員不被改變的對象,可聲明為常對象

如果一個對象被聲明為常對象,則不能調(diào)用該對象的非const型的成員函數(shù)(除了由系統(tǒng)自動調(diào)用的隱式的構(gòu)造函數(shù)和析構(gòu)函數(shù))

引用常對象中的函數(shù)成員,只需將該成員函數(shù)聲明為const即可。如?

void get_time( ) const; //將函數(shù)聲明為const

t1.get_time( ); // 可行
修改常對象中的某個數(shù)據(jù)成員的值,需要對該數(shù)據(jù)成員聲明為mutable,如?
mutable int count;//可以用聲明為const的成員函數(shù)來修改它的值

常數(shù)據(jù)成員
和一般常變量相似,常數(shù)據(jù)成員的值是不能改變
只能通過構(gòu)造函數(shù)的參數(shù)初始化表對常數(shù)據(jù)成員進行初始化。不能在構(gòu)造函數(shù)中對常數(shù)據(jù)成員賦初值的方法。
Time∷Time(int h){hour=h} //非法
Time∷Time(int h):hour(h){} //通過參數(shù)初始化表對常數(shù)據(jù)成員初始化
常對象的數(shù)據(jù)成員都是常數(shù)據(jù)成員,因此常對象的構(gòu)造函數(shù)只能用參數(shù)初始化表對常數(shù)據(jù)成員進行初始化

常成員函數(shù)
如果將成員函數(shù)聲明為常成員函數(shù),則只能引用本類中的數(shù)據(jù)成員,而不能修改它們,例如只用于輸出數(shù)據(jù)等
常成員函數(shù)可以引用const數(shù)據(jù)成員,也可以引用非const的數(shù)據(jù)成員
const數(shù)據(jù)成員可以被const成員函數(shù)引用,也可以被非const的成員函數(shù)引用

如果已定義了一個常對象,只能調(diào)用其中的const成員函數(shù),而不能調(diào)用非const成員函數(shù)

常對象只保證其數(shù)據(jù)成員是常數(shù)據(jù)成員,其值不被修改

常成員函數(shù)不能調(diào)用另一個非const成員函數(shù)

靜態(tài)成員

如果想在同類的多個對象之間實現(xiàn)數(shù)據(jù)共享,也不要用全局對象,可以用靜態(tài)的數(shù)據(jù)成員

靜態(tài)數(shù)據(jù)成員不屬于某一個對象,在為對象所分配的空間中不包括靜態(tài)數(shù)據(jù)成員所占的空間。靜態(tài)數(shù)據(jù)成員是在所有對象之外單獨開辟空間。只要在類中定義了靜態(tài)數(shù)據(jù)成員,即使不定義對象,也為靜態(tài)數(shù)據(jù)成員分配空間,它可以被引用
靜態(tài)數(shù)據(jù)成員不隨對象的建立而分配空間,也不隨對象的撤銷而釋放(一般數(shù)據(jù)成員是在對象建立時分配空間,在對象撤銷時釋放)。靜態(tài)數(shù)據(jù)成員是在程序編譯時被分配空間的,到程序結(jié)束時才釋放空間

靜態(tài)數(shù)據(jù)成員可以初始化,但只能在類體外進行初始化。
一般形式為
數(shù)據(jù)類型類名∷靜態(tài)數(shù)據(jù)成員名=初值;
int Box∷height=10; ?

注意: 不能用參數(shù)初始化表對靜態(tài)數(shù)據(jù)成員初始化

如果未對靜態(tài)數(shù)據(jù)成員賦初值,編譯系統(tǒng)會自動賦予初值0

靜態(tài)成員函數(shù)沒有this指針,在C++程序中,靜態(tài)成員函數(shù)主要用來訪問靜態(tài)數(shù)據(jù)成員,而不訪問非靜態(tài)成員
在一個靜態(tài)成員函數(shù)中:
cout<<height<<endl; ?//若height已聲明為static,則引用本類中的靜態(tài)成員,合法
cout<<width<<endl; ? //若width是非靜態(tài)數(shù)據(jù)成員,不合法
如果一定要引用本類的非靜態(tài)成員,應(yīng)該加對象名和成員運算符“.”。如: cout<<a.width<<endl; ? ? ? ? ? ?//引用本類對象a中的非靜態(tài)成員
假設(shè)a已定義為Box類對象,且在當前作用域內(nèi)有效,則此語句合法

運算符重載

C++不允許用戶自己定義新的運算符,只能對已有的運算符進行重載。
C++中絕大部分的運算符允許重載。不能重載的運算符只有5個:?
. ? ? ? ?(成員訪問運算符)?
* ? ? ? (成員指針訪問運算符)
∷ ? ? (域運算符)
sizeof ? (長度運算符)
?: ? ? ? (條件運算符)
重載不能改變運算符運算對象(即操作數(shù))的個數(shù)。
重載不能改變運算符的優(yōu)先級別。
重載不能改變運算符的結(jié)合性

重載運算符的函數(shù)不能有默認參數(shù),否則就改變了運算符參數(shù)的個數(shù)。
重載的運算符必須和用戶定義類型的對象一起使用,其參數(shù)至少應(yīng)有一個是類對象(或類對象的引用)。參數(shù)不能全部是C++的標準類型,以防止用戶修改用于標準類型數(shù)據(jù)的運算符的性質(zhì)。
用于類對象的運算符一般必須重載,但運算符“=”和“&”不必用戶重載

自增運算符重載示例:

#include <iostream>class Counter {
private:int count;public:Counter() : count(0) {}// 重載前置自增運算符 (++var)Counter& operator++() {count++;return *this;  // 返回遞增后的對象引用}// 重載后置自增運算符 (var++)Counter operator++(int) {Counter temp(*this);  // 創(chuàng)建一個副本用于保存遞增前的值count++;return temp;  // 返回遞增前的對象副本}void display() const {std::cout << "Count: " << count << std::endl;}
};int main() {Counter myCounter;// 使用前置自增運算符++myCounter;myCounter.display();// 使用后置自增運算符Counter anotherCounter = myCounter++;myCounter.display();anotherCounter.display();return 0;
}

剩下的內(nèi)容,在下面三篇文章中寫的比較詳細:

c++ 運算符重載

c++ 繼承和派生

c++ 多態(tài)和虛函數(shù)

http://www.risenshineclean.com/news/60391.html

相關(guān)文章:

  • 保定網(wǎng)站設(shè)計概述百度關(guān)鍵詞優(yōu)化公司哪家好
  • wordpress add option臨沂網(wǎng)站seo
  • 網(wǎng)站制作費可以做業(yè)務(wù)宣傳費教程seo推廣排名網(wǎng)站
  • 網(wǎng)站后臺管理系統(tǒng)需求長沙網(wǎng)站快速排名提升
  • php企業(yè)網(wǎng)站開發(fā)源碼免費接單平臺
  • 公司網(wǎng)站建設(shè)工作網(wǎng)站快照優(yōu)化公司
  • 宿遷哪里做網(wǎng)站百度關(guān)鍵詞檢測工具
  • 廣告線上推廣方式秦皇島網(wǎng)站seo
  • 網(wǎng)站建設(shè)規(guī)劃公司地址中國十大搜索引擎網(wǎng)站
  • 開源的網(wǎng)站系統(tǒng)軟文范文200字
  • 網(wǎng)頁設(shè)計與制作實訓報告結(jié)果網(wǎng)站搜索引擎優(yōu)化診斷
  • 網(wǎng)站制作網(wǎng)站建設(shè)單位西安百度推廣優(yōu)化托管
  • pc網(wǎng)站制作是指什么意思信息流推廣渠道有哪些
  • 國產(chǎn) 做 視頻網(wǎng)站網(wǎng)絡(luò)搜索引擎優(yōu)化
  • 關(guān)于網(wǎng)站運營的問題百度賬號免費注冊
  • 做商城網(wǎng)站帶寬外貿(mào)建站平臺
  • 一般電商都是在哪些網(wǎng)站上做百度廣告電話號碼是多少
  • 武漢家具定制旺道seo系統(tǒng)
  • 何為門戶網(wǎng)站網(wǎng)絡(luò)營銷的作用和意義
  • 下載建設(shè)銀行官方網(wǎng)站下載安裝人力資源短期培訓班
  • 三亞做網(wǎng)站的公司營銷推廣手段有什么
  • 做軍事網(wǎng)站的項目背景圖片互聯(lián)網(wǎng)怎么打廣告推廣
  • wordpress如何自建站seo查詢百科
  • 作文素材北京推廣優(yōu)化經(jīng)理
  • 公司logo設(shè)計免費生成圖片電腦系統(tǒng)優(yōu)化軟件排行榜
  • 網(wǎng)站建設(shè) 文章營銷方式有哪幾種
  • 張家界網(wǎng)站建設(shè)方案最新免費網(wǎng)站收錄提交入口
  • wordpress測試數(shù)據(jù)中文北京seo顧問推推蛙
  • 網(wǎng)站視頻是什么軟件做的廣州seo關(guān)鍵詞優(yōu)化費用
  • 建設(shè)網(wǎng)站公司是什么百度網(wǎng)址提交入口平臺