也是好久沒寫博客了,主播這半年一直在忙別的領域,在磁力驅動領域干了一年,最好發現自己對這個領域并不是很感興趣,做這個領域多半都是為了發文章,現在閑下來了,主播終于也是過上好日子了,主播又可以繼續從事嵌入式行業了,嵌入式贏!!!
好了廢話不多說,這幾天在學習c++,想著順便寫一篇博客,記錄一下自己學c++的過程
1.命名空間
在初學c++的時候聽到命名空間這個概念,感覺還是挺高級的,但是深入去學發現其實跟c語言沒啥區別,我對命名區間的理解很簡單(雖然不一定正確),就是在我們日常寫c語言中我們會遇見一個問題就是我們會對某一個變量重復命名導致在調用的時候出現問題,那么解決問題也很簡單,就是把實現具體功能的變量封裝在其指定的文件夾中并用static進行定義防止在其他文件夾中變量被更改,但是在c++中給出的解決辦法就是單獨給一些變量和函數開辟一片空間,你想要調用這個變量或者是這個函數 你就必須調用這個命名空間,這樣就可以防止被重復調用的問題,具體我們看代碼就行了
下面就是一個簡單的命名空間
namespace MyNamespace {int value = 42; // 變量void print() { /*...*/ } // 函數class MyClass { /*...*/ }; // 類
}
如下就是我們對命名空間的使用
// 方式1:作用域解析運算符 ::
MyNamespace::value = 100;
MyNamespace::print();// 方式2:using 聲明(引入特定成員)
using MyNamespace::print;
print(); // 可直接調用// 方式3:using 指令(引入整個命名空間 - 慎用!)
using namespace MyNamespace;
value = 200; // 直接訪問
?再舉一個具體點的列子就是,要看清楚每一個代碼再那個文件夾中
.h文件
namespace cir {
double PI=3.1415926;獲取周長的函數
Double Getlenth (Double R)
{
return 2*PI*r
}Double GetaifiCircle( Double R)
{
return PI*r*r;
}}
.c文件中
//不使用引用 想要調用需加::
#include "cir.h"
#include <stdio.h>
using namespace std
int main()
{double myr=5;
printf("lenth:%lf,are:%lf\n",cir::getlenth(myr),cir::getaificircle(myr));
return 0;
}//如果使用引用,也就是用using namespace cir
#include "cir.h"
#include <stdio.h>
using namespace std
using namespace cir
int main()
{double myr=5;
printf("lenth:%lf,are:%lf\n",getlenth(myr),getaificircle(myr));
return 0;
}