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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

c++中的变量作用范围

發(fā)布時(shí)間:2025/4/16 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++中的变量作用范围 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

因?yàn)樽罱?xiàng)目很忙,所以只是暫時(shí)做個(gè)簡(jiǎn)單的筆記,以后有時(shí)間了我會(huì)再重新做個(gè)整理:

順便附上一個(gè)網(wǎng)站,可以在線(xiàn)寫(xiě)代碼的,適合進(jìn)行小規(guī)模的代碼測(cè)試(做開(kāi)發(fā)當(dāng)然是不可能的):

點(diǎn)擊打開(kāi)鏈接

在平時(shí)的c++中:

#include <iostream> using std::cout; using std::cin;int a = 1;int main(){cout << a;return 0; }我們知道,在main函數(shù)外定義一個(gè)變量,在main函數(shù)里面可以直接調(diào)用(其他函數(shù)也是),相當(dāng)于是一個(gè)全局變量。當(dāng)然,如果將變量定義在main里面,那么main外面的函數(shù)自然是無(wú)法調(diào)用的。在這里我們不討論跨文件調(diào)用的情況(extern這個(gè)以后再說(shuō))

#include <iostream> using std::cout; using std::cin;int a = 1;int main(){a = 2;cout << a;return 0; }我們先看這樣一種最簡(jiǎn)單的情況,a=2,這是將上面的a的值直接覆蓋掉了,相當(dāng)于更新了變量a的值。

#include <iostream> using std::cout; using std::cin;int a = 1;int main(){int a = 2;cout << a;return 0; }這里的情況,在main里面的a前面加了個(gè)int,這其實(shí)是定義了一個(gè)局部變量,這個(gè)局部變量只在main里面生效,事實(shí)上外面的a=1不是被覆蓋了,而是壓根兒就沒(méi)有被調(diào)用到。相信這種情況也是非常好理解的。

#include <iostream> using std::cout; using std::cin;int a = 1;int main(){a = 2;cout << ::a;return 0; }接著我們?cè)倏?#xff0c;這個(gè)時(shí)候在輸出的時(shí)候增加了::,這樣一來(lái),輸出的a就不是函數(shù)內(nèi)部的局部變量了,而是外面的全局變量,就好像一個(gè)類(lèi)的靜態(tài)成員變量,事實(shí)上所有的文件都可以看成是一個(gè)class,如果想要調(diào)用函數(shù)外面的全局變量就可以采用::符號(hào),這個(gè)在平時(shí)是不需要的,因?yàn)楹瘮?shù)會(huì)在執(zhí)行的時(shí)候先查找內(nèi)部有沒(méi)有定義該變量,如果沒(méi)有,那么就在該文件里尋找,如果在函數(shù)內(nèi)部已經(jīng)找到了就不會(huì)再去函數(shù)外面尋找了,所以如果在函數(shù)內(nèi)部定義了某個(gè)同名變量,又想要訪(fǎng)問(wèn)外面的變量,那就使用::即可。

再說(shuō)一個(gè)關(guān)于class的變量名稱(chēng)問(wèn)題:

#include <iostream> using std::cout; using std::cin;class Slime{public: //史萊姆的默認(rèn)攻擊力是25,默認(rèn)生命值是30。Slime(int Attack = 25, int Health = 30){attack = Attack;health = Health;}int getAttack(){return attack;}int getHealth(){return health;}private:int attack;int health; };int main(){Slime one(20,50);cout << one.getAttack() << '\n';cout << one.getHealth();return 0; }在這里我們定義了一個(gè)非常簡(jiǎn)單的史萊姆類(lèi),并且實(shí)例化了一個(gè)one對(duì)象,不過(guò)在史萊姆的構(gòu)造函數(shù)里面,我們將形參用大寫(xiě)開(kāi)頭,然后將其值傳給private的值保存起來(lái)。這種方法需要形參的名字和private里面需要保存的實(shí)參的名字不同,否則保存就會(huì)失敗,那么可不可以同名呢?答案是可以的,也是利用上面的方法使用::符號(hào)如下:

#include <iostream> #include <memory> using std::cout; using std::cin;class Slime{public:Slime(int attack = 25, int health = 30){Slime::attack = attack;Slime::health = health;}~Slime(){//cout << "刪了";}int getAttack(){return attack;}int getHealth(){return health;}private:int attack;int health; };int main(){Slime one(20, 50);Slime* two = new Slime;cout << one.getAttack() << '\n';cout << one.getHealth() << '\n';cout << two->getAttack() << '\n';cout << two->getHealth() << '\n';//delete two;//two = NULL;return 0; }







總結(jié)

以上是生活随笔為你收集整理的c++中的变量作用范围的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。