日韩性视频-久久久蜜桃-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++的第四天的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 一区二区不卡免费视频 | 精品国产91| 91搞| 交做爰xxxⅹ性爽 | 伊人tv | 精品国产无码在线观看 | 亚洲色图19p | 96视频在线 | 大黑人交交护士xxxxhd | 麻豆视频免费 | 国产成人精品免费看视频 | www.四虎.| 国产乱人伦app精品久久 | 女同一区二区三区 | 国产第一福利影院 | 伊人9999| 亚洲一二三视频 | 日日夜夜中文字幕 | 亚洲综合五月 | 国产高清在线观看视频 | 自拍偷拍亚洲综合 | 欧av在线| 激情婷婷综合 | 麻豆91精品 | 国产福利视频导航 | 久久艹av | 四虎网址在线观看 | 欧美日韩一级视频 | 日本呦呦| 神马伦理影视 | 大地资源中文第三页 | 国产不卡a | 免费在线精品视频 | 色婷婷av一区二区三区大白胸 | 亚洲国产高清在线 | 婷婷久久五月天 | 牛牛精品视频 | 亚洲一级大片 | 美女扒开腿让男生桶 | 成人区精品一区二区婷婷 | 色av资源 | 国产富婆一级全黄大片 | 国产熟妇一区二区三区aⅴ网站 | 成人黄色小视频 | 福利片在线播放 | 国产亚洲视频在线观看 | 91欧美一区二区三区 | 成人免费看片98欧美 | 爱的色放3| 超碰97国产精品人人cao | 久久性 | 国产精品免费一区二区三区都可以 | 美女隐私免费看 | 激情内射亚洲一区二区三区爱妻 | 国产人妻精品久久久久野外 | 青青草综合视频 | 阿拉伯性视频xxxx | 精品国产乱码久久久久久1区2区 | 欧美精品在线一区二区 | a三级黄色片 | 波多野吉衣av无码 | 外国一级片 | 色吟av | 欧美精品午夜 | 国产一区二区视频在线播放 | 成人在线视频播放 | 一区二区免费在线视频 | 91久久久久久久久久久久久 | 欧美裸体精品 | 69xxx国产| 极品探花在线播放 | 一区二区影院 | 亚洲第一综合 | 久久99精品国产91久久来源 | h无码动漫在线观看 | 国产喷潮 | 日韩电影一区二区在线观看 | 性高跟鞋xxxxhd人妖 | 成年人国产视频 | 亚洲少妇视频 | 免费一级黄色片 | 亚洲人交配视频 | 99热国内精品 | 91成人一区 | 极品尤物魔鬼身材啪啪仙踪林 | 久久久少妇 | 午夜精品久久久久久久91蜜桃 | 欧美夜夜操 | 91精品国产成人www | 97超碰免费| 黑帮大佬和我的365日第二部 | 农村少妇久久久久久久 | 亚洲欧美中日韩 | 日本美女操 | 四虎成人网 | 中文字幕日韩一区二区三区不卡 | 99久久精品一区二区三区 | 奇米影视奇米色 | 伊人网久久久 |