C primer 第九章課後答案

2021-10-24 16:38:16 字數 2243 閱讀 9876

b 在乙個檔案中將secret直接定義成外部,其他檔案或者說另乙個檔案要用的時候用extern來宣告下

c static auto topsecret;

d 在這個函式中定義個 靜態變數 static int beencalled = 0;

using 宣告更加的安全,用using namespace編譯指令時區域性的名稱如果和全域性一樣,會覆蓋全域性。目前就知道這麼多

int main()

}std::cout << "value = " << x << std::endl;

return 0;

}

using std::cout;

using std::cin;

using std::endl;

int main()

}cout << "value = " << x << endl;

return 0;

}

5.寫兩個過載函式;或者就是函式頭加上static 這樣這個函式只能在本檔案中使用;

6.分析:

x 為全域性變數 更具體的說(外部的靜態持續變數)

y 也為全域性變數

但在第二個資料夾中,namespace這句話其實等價於static int y = -4,導致了y其實為內部的靜態持續變數,就是說檔案之間不通,而x是兩個資料夾的用的同乙個變數。

結果如下:

10 // 全域性變數x

4 // **塊中被覆蓋成新的

0 // 全域性變數定義時,會初始化0

10,1 // other() 函式中定義了y那麼變1

10,-4 // 用extern宣告了,就可以在第二資料夾用x 就是10;而y其實為內部的靜態持續變數,說白了就是這個檔案新的y全域性變數。但你不能直接定義y,也就是你不加static,那麼違反c++的單側命名規則?不能定義,因為第乙個定義了。這個是我現在的理解,有大佬看到,有不對,能夠指點我下。

7.1 // 使用了using namespace n1;

4, 1, 2 // 第乙個區域性;第二個n1::;第二個n2::

2 // using n2::x

2 // using n2::x

4, 1, 2 // 第乙個區域性;第二個n1::;第二個n2::

2 // using n2::x

1.main.cpp

const int number = 2;

int main()

setgolf(g[number], "tiancai", 520);

cout << "alter first handicap:";

cin >> alter_handicap;

handicap(g[0], alter_handicap);

for (int i = 0; i < number+1; ++i)

}

golf.hpp

#ifndef golf_hpp

#define golf_hpp

#include const int len = 40;

struct golf

;void setgolf(golf &g, const char* name, int hc);

int setgolf(golf &g);

void handicap(golf &g, int hc);

void showgolf(const golf &g);

#endif /* golf_hpp */

golf.cpp

#include "golf.hpp"

#include #include #include using namespace std;

void setgolf(golf &g, const char* name, int hc)

int setgolf(golf &g)

void handicap(golf &g, int hc)

void showgolf(const golf &g)

total += count;

cout << count << " characters\n";

cout << total << " characters total\n";

}int main()

cout << "done\n";

return 0;

}

後兩題沒有進行彙總

C primer 第九章筆記 初稿

性質 容器中元素的順序與加入的位置相對應,為使用者提供了控制元素儲存和訪問順序的能力。六大順序容器 名稱功能 特點 vector 可變大小陣列 支援快速隨機訪問,除尾部外插入 刪除較慢 deque 雙端佇列 支援快速隨機訪問,頭尾外插入刪除較慢 list 雙向列表 支援雙向順序訪問,任何位置插入刪除...

C primer 第九章順序容器!

標準庫定義了3種順序容器 vector支援隨機訪問,list支援快速插入刪除,deque雙端佇列。他們的差別在於訪問元素的方式,以及新增或刪除元素操作的執行代價。1.容器元素的初始化 預設的建構函式 listilist list容器,裡面內容是int型別的內容 dequeitems 空容器deque...

C primer 第九章個人筆記

個人筆記,txt備份用。不考慮排版。順序容器型別 vector 可變陣列,支援快速隨機訪問 在尾部之外的地方插入元素不方便 deque 雙端佇列,支援快速隨機訪問,在首尾部之外的地方插入刪除元素麻煩 list 雙向鍊錶 任何位置插入刪除元素快 只能雙向訪問 forward list 單向鍊錶 任何位...