亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++ namespace相關語法實例分析

 更新時間:2014年08月19日 10:24:36   投稿:shichen2014  
這篇文章主要介紹了C++ namespace相關語法實例分析,對C++初學者有很好的參考借鑒價值,需要的朋友可以參考下

namespace命名空間是C++中一個非常重要的概念,本文實例展示了namespace的相關語法,供大家參考。具體如下:

本段測試代碼包括如下內容:

(1) 如何訪問namespace中聲明的名稱;
(2) namespace導致的相關沖突;
(3) namespace可嵌套;
(4) 可以在namespace中使用using聲明和using編譯命令;
(5) 未命名的namespace:其作用域為定義該namespace所在的聲明區(qū)域。C++推薦用來替代static定義靜態(tài)變量。

具體程序代碼如下:

#include <iostream>

using namespace std;

namespace jerry{
  int height;
  int weight;
  void showHeight();
  string name;
}

//
namespace jerry{
  void showHeight()
  {
    cout<<"Method 3: Jerry height: "<<height<<" kg"<<endl;
  }
}

namespace elements
{
  namespace fire
  {
    int flame;
    using namespace jerry; //(4) can use 'using' in namespace define
    using std::cout;
  }
  float water;
}

//(5) no name namespace
//其作用域為定義時所在的聲明域,可用來替換static變量,這是C++標準推薦的行為
namespace {
  string data;
}

void testFun();
int main()
{
  cout<<"This code is to test namespace"<<endl;
  /*not allowed to define namespace in code segment
  //Error
  namespace jerry{
     int height;
     int weight;
  }
  */

  //(1) To access the data in namespace
  //Method 1: 作用域解析符
  jerry::height = 165;
  cout<<"Method 1: Jerry height: " << jerry::height <<" cm"<<endl;

  //Method 2: using聲明
  using jerry::weight;
  weight = 64;
  cout<<"Method 2: Jerry weight: " << weight<<" kg"<<endl;

  //Method 3: using編譯指令:All the define data in namespace jerry can be access.
  using namespace jerry;
  showHeight();

  //(2) about name conflict
  {
    jerry::name = "Jerry";
    string name = "Tom";
    //using jerry::name; Error
    cout << "name: "<<name<<endl;
    /*
    This method will lead conflict with locall parameter
    using jerry::name;
    cout << "name: "<<name<<endl;
    */

    cout << "name: "<<jerry::name<<endl;
    using namespace jerry;
    //局部變量會覆蓋jerry命名空間的name定義
    cout << "name: "<<name<<endl;

  }

  //(3) namespace can nest
  elements::fire::flame = 2;
  using namespace elements::fire;

  //(5) no name namespace
  //其作用域為定義時所在的聲明域,可用來替換static變量,這是C++標準推薦的行為
  data = "hello";
  cout<<"No name namespace: data: " << data <<endl;
  testFun();

}

void testFun()
{

  /*not allowed to define namespace in code segment
  //Error
  namespace jerry{
     int height;
     int weight;
  }
  */

  //(5) no name namespace
  data = "hello in function";
  cout<<"No name namespace: data: " << data <<endl;
}

運行結果如下圖所示:

相關文章

  • 深入理解雙指針的兩種用法

    深入理解雙指針的兩種用法

    本篇文章是對雙指針的兩種用法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 淺析C語言中堆和棧的區(qū)別

    淺析C語言中堆和棧的區(qū)別

    堆和棧都是一種數(shù)據(jù)項按序排列的數(shù)據(jù)結構。在C語言中是非常重要的知識點,接下來通過本文給大家介紹C語言中堆和棧的區(qū)別,感興趣的朋友一起看下吧
    2016-06-06
  • 最新C/C++中的new和delete的實現(xiàn)過程小結

    最新C/C++中的new和delete的實現(xiàn)過程小結

    這篇文章主要介紹了C/C++中的new和delete的實現(xiàn)過程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C++設計模式之CRTP的使用

    C++設計模式之CRTP的使用

    CRTP全稱是curious?recurring?template?pattern,即奇異遞歸模版模式,是一種c++的設計模式,精巧地結合了繼承和模板編程的技術,下面就跟隨小編一起來學習一下CRTP的使用吧
    2023-10-10
  • 利用C語言實現(xiàn)猜數(shù)字游戲

    利用C語言實現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細介紹了利用C語言實現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • C++深入講解對象的銷毀之析構函數(shù)

    C++深入講解對象的銷毀之析構函數(shù)

    構造函數(shù)在創(chuàng)建對象時被系統(tǒng)自動調用,而析構函數(shù)(Destructor)在對象被撤銷時被自動調用,相比構造函數(shù),析構函數(shù)要簡單的多
    2022-04-04
  • C語言內存函數(shù) memcpy,memmove ,memcmp

    C語言內存函數(shù) memcpy,memmove ,memcmp

    這篇文章主要介紹了C語言內存函數(shù) memcpy,memmove ,memcmp,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • C++實現(xiàn)電子時鐘效果

    C++實現(xiàn)電子時鐘效果

    這篇文章主要為大家詳細介紹了C++實現(xiàn)電子時鐘效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C/C++的文件IO函數(shù)你知道嗎

    C/C++的文件IO函數(shù)你知道嗎

    這篇文章主要為大家詳細介紹了C/C++的文件IO函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 基于VC中使用ForceInclude來強制包含stdafx.h的解決方法

    基于VC中使用ForceInclude來強制包含stdafx.h的解決方法

    本篇文章是對VC中使用ForceInclude來強制包含stdafx.h的解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05

最新評論