日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

学习C++的第四天

發布時間:2023/11/27 生活经验 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习C++的第四天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、頭文件中的 #ifndef/#define/#endif 防止該頭文件被重復引用”
//文件路徑名:el_1\hello.h

#ifndef _HELLO /如果沒有定義 _HELLO文件

#define _HELLO /那么定義 _HELLO文件

void Hello(void); 全局函數聲明

#endif

?

2、頭文件一般用于存放函數原型

3、類本質上是C語言中結構體的擴充,類中不但可以包含數據成員,還可以包含函數成員,并規定了對類中成員的三級訪問權限

在public中聲明的成員可以在程序中自己進行訪問

在private和protected中聲明的成員可以被 此類的成員函數 及 聲明為友元的函數所訪問

在protected中聲明的成員可以被此類派生的類所訪問,而在private中聲明的成員則不能被此類派生的類所訪問

?

4、

/rectangle.h類的聲明放在頭文件中

class Rectangle ?/定義一個Rectangle 類
{
private:
int length , width , height; ? 長方體的長寬高
public:
Rectangle(int len,int wd,int ht); 構造函數。。。。。。。構造函數名與類名相同
virtual~Rectangle(void){} ? ? /析構函數。。。。。。。。析構函數主要用于含有指針的數據成員中釋放動態數據成員
int Volume(void); ?///返回長方體體積的函數-----------------------------改動為int Volume(Rectangle oRectangle)
};

?

///rectangle.cpp類的實現放在源文件中

# include"rectangle.h" ? ?//切記要用雙引號

Rectangle::Rectangle(int len, int wd, int ht)
{
length = len;
width = wd;
height = ht;
}

int Rectangle::Volume(void) ? -------------------------改為int Rectangle::Volume(Rectangle oRectangle)
{
return length*width*height;----------------------------改為 return?oRectangle.length*oRectangle.width*oRectangle.height;
}

?

///main.cpp///主函數

# include<stdlib.h>
# include<iostream>
# include"rectangle.h" 提供類Rectangle的聲明
using namespace std;

int main(void)
{
Rectangle a(6,8,9); ? ? ?利用構造函數 構造一個長方體a ? 此時傳入len=6 wd=8 ht=9 然后再傳給length ?width height


int v = a.Volume(); ?因為屬于Rectangle類 所以需要a. ? ? 利用length width height 計算體積 -------------改為a.Volume(a);
cout<<v<<endl;
system("pause");
return 0;
}

改完后等式仍會成立

?

5、關于 友元

??/rectangle.h類的聲明放在頭文件中

class Rectangle
{
private:
int length , width , height;
public:
Rectangle(int len,int wd,int ht);
virtual~Rectangle(void){}
friend int Volume(Rectangle oRectangle);///加了個friend 意味著該函數并不屬于Rectangle類?
};

?

///rectangle.cpp類的實現放在源文件中

# include"rectangle.h"

Rectangle::Rectangle(int len, int wd, int ht)
{
length = len;
width = wd;
height = ht;
}

int Volume(Rectangle oRectangle) ///友元函數 已經在Rectangle類中聲明過------區別在于該函數不屬于Rectangle類
{
return oRectangle.length*oRectangle.width*oRectangle.height;
}

?

///main.cpp///主函數

# include<stdlib.h>
# include<iostream>
# include"rectangle.h"
using namespace std;

int main(void)
{
Rectangle a(6,8,9);

int v = Volume(a);因為不屬于Rectangle類,所以不需要a.
cout<<v<<endl;
system("pause");
return 0;
}

?

具體大概有下面兩種情況需要使用友元函數:(1)運算符重載的某些場合需要使用友元。(2)兩個類要共享數據的時候。

? ??

1.2.1優點:能夠提高效率,表達簡單、清晰。

1.2.2缺點:友元函數破環了封裝機制,盡量不使用成員函數,除非不得已的情況下才使用友元函數。

?

6、c++的一大特性就是重載(overload),通過重載可以把功能相似的幾個函數合為一個,使得程序更加簡潔、高效。在c++中不止函數可以重載,運算符也可以重載。由于一般數據類型間的運算符沒有重載的必要,所以運算符重載主要是面向對象之間的。

?

?

7、C++的參數傳遞(傳給函數)

? ? <1>傳值方式:是默認方式,在調用函數時,將實參的值傳遞給函數局部存儲相應參數的副本,函數對副本操作,只改變副本的值,而不會修改實參的值

? ? <2>引用方式:引用方式需要在形參聲明時參數名前加上符號&,在調用函數時,被傳遞的不是實參的值,而是實參的地址,函數通過地址存取實參。C語言通過指針實現。

? ? 將數組作為值參傳遞時,由于數組名實際表示數組的起始存儲地址,傳遞的是數據第一個元素的地址,這樣對數組元素的修改本質是對實參數組元素的修改

?

?

void swap(int &a,int &b)------------用引用&傳遞方式b實現
{
int t;
t = a;
a = b;
b = t;
}--------------------------------------對應swap(u,v)---------------int a=1 ;int &ra = a; 則ra=1;-------ra = ra-1;cout<<a;輸出0 ? 引用的值改變能改變實參的值

?

?


void swap(int *a,int *b)------------用指針傳遞方式實現
{
int t;
t = *a;
*a = *b;
*b = t;
}--------------------------------------對應swap(&u,&v)

?

8、DEVC++出現打開文件失敗的情況 ?有可能是32位機子然后卻選擇了64位的解決方法(右上角)

?

9、exit()

雖然現在大多數平臺下,直接在 main() 函數里面 return 可以退出程序。但是在某些平臺下,在 main() 函數里面 return 會導致程序永遠不退出(因為代碼已經執行完畢,程序卻還沒有收到要退出的指令)。換句話說,為了兼容性考慮,在特定的平臺下,程序最后一行必須使用 exit() 才能正常退出,這是 exit() 存在的重要價值。

0表示程序已經正常執行完畢,而非0值則表示有錯誤發生,至于非0值具體為多少則由開發者自己定義,比如1代表輸入錯誤,2代表計算錯誤之類的 10、有關C++的動態存儲分配 通常定義變量(或對象),編譯器在編譯時都可以根據該變量(或對象)的類型知道所需內存空間的大小,從而系統在適當的時候為他們分配確定的存儲空間。這種內存分配稱為靜態存儲分配; 有些操作對象只在程序運行時才能確定,這樣編譯時就無法為他們預定存儲空間,只能在程序運行時,系統根據運行時的要求進行內存分配,這種方法稱為動態存儲分配。所有動態存儲分配都在堆區中進行。 當程序運行到需要一個動態分配的變量或對象時,必須向系統申請取得堆中的一塊所需大小的存貯空間,用于存貯該變量或對象。當不再使用該變量或對象時,也就是它的生命結束時,要顯式釋放它所占用的存貯空間,這樣系統就能對該堆空間進行再次分配,做到重復使用有限的資源。 c++中使用new分配的存儲單元必須用delete進行釋放 new命令的使用格式: new 被建立對象的數據類型 或 new 被建立對象的數據類型[分配存儲單元個數]------數組 new命令返回指向被建立對象的指針 delete命令的使用格式: delete 指向被釋放對象的指針 或 ? delete []指向被釋放對象數組的指針 11、在C++中類與結構的區別在于:在結構中默認的訪問權限是public ?而在類中默認的訪問權限是private。除此之外,類與結構是等價的 12、算法應具有以下幾種性質:正確性、具體性、有限性、確定性、可讀性、健壯性(能對非法數據處理 不應死機或出現異常結果) 13、間接運算符 *和某元素的地址 連在一起以表示 該元素 14、對于數組a[10]來說 ?a+i 等價于 &a[i] ? 所以 ? *(a + i) 等價于 a[i] ? ? ?特殊的 a等價于 &a[0]

# include<iostream>
using namespace std;
int main()
{
int a[10];
*(a+1)= 5;
cout<<a[1];
return 0;
}

?

15、 &a[9] - 3 = a +9 - 3 = a +6 = &a[6] ? ? ? ?&a[9] - &a[6] = a+9-a-6=3 ?除此之外,其他任何對地址的運算操作都是不允許的

?

轉載于:https://www.cnblogs.com/wshyj/p/6262516.html

總結

以上是生活随笔為你收集整理的学习C++的第四天的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: a天堂最新地址 | 亚洲精品久久久蜜桃 | 久久综合加勒比 | 九色丨蝌蚪丨成人 | 一卡二卡三卡 | 性一交一黄一片 | 亚洲一级片| 日本在线观看一区 | 国产aⅴ爽av久久久久成人 | 91精品国产91久久久久久黑人 | 巨胸喷奶水www久久久免费动漫 | 草草在线视频 | 天天操天天操天天操天天 | 波多野结衣导航 | 欧美成人免费在线观看视频 | 成年人在线视频免费观看 | 日韩av片在线| 国产精品视频入口 | 欧美日本精品 | 久操伊人网| 啪啪亚洲| 日免费视频 | 久草影视网 | 日本久久久网站 | 四虎影视在线 | 精品一区二区三区成人免费视频 | 色综合中文网 | 涩涩涩涩涩涩涩涩涩 | 欧美人妻一区二区 | 黄色网络在线观看 | 在线不卡av电影 | 伊人影视久久 | 荫蒂被男人添免费视频 | 国产区精品在线观看 | 激情图片在线视频 | 婷婷777| 国产精品无码一区二区三区三 | 久久在线免费观看视频 | 在线不卡 | 户外露出一区二区三区 | 国产精品乱码一区二三区小蝌蚪 | 小敏的受孕日记h | 亚洲综合久久网 | av片国产| 请用你的手指扰乱我吧 | 婷婷激情电影 | 自拍21区| 久久久久久久成人 | 最近中文字幕 | 黄视频在线免费看 | 热九九精品 | 在线观看中文字幕视频 | www.五月天com| 久久国内视频 | 日韩黄色免费 | 精品视频免费在线观看 | 8x国产一区二区三区精品推荐 | 99re国产精品 | 国产欧美一区二区三区视频在线观看 | 私密视频在线观看 | 中文字幕av免费在线观看 | 亚洲色图欧美激情 | 伊人看片 | 精品少妇av | 久久久社区 | 手机在线永久免费观看av片 | 特级一级片 | 天天撸一撸 | 黄色免费视屏 | 精品国产午夜福利在线观看 | 亚洲精品一区二三区不卡 | 一区av在线| 亚洲精品乱码久久久久久蜜桃动漫 | 玖玖热在线视频 | 免费无码又爽又黄又刺激网站 | 91免费视频大全 | 亚洲 欧美 日韩 综合 | av免费看网站 | 婷婷色站| 中文字幕精品国产 | 成人亚洲精品久久久久软件 | 国产精选毛片 | 熟女毛毛多熟妇人妻aⅴ在线毛片 | 九九九九精品九九九九 | 免费国产黄 | 一本—道久久a久久精品蜜桃 | 无码人妻aⅴ一区二区三区有奶水 | 超碰在线看 | 国产亚洲精品美女久久久久 | 成人自拍av | 欧美性猛交xxxx乱大交 | 特级新鲜大片片 | 久久免费看片 | 亚欧洲精品视频 | 青青草精品 | 99ri视频 | 麻豆高清| 人人草人人爱 | 欧美系列一区二区 |