Re: [問題] C++ primer 的問題?

看板C_and_CPP (C/C++)作者 (CA)時間16年前 (2009/06/07 23:53), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《softwind (software everywhere)》之銘言: : 練習 12.31, pair的成員都是 public : 但是 pair<int, int> p2={0,42}; 不能編譯是因為? : A: 因為pair有提供建構式 不能直接用 array 初始化變數. 呣,我的印象是可以編譯說,用 gcc 4 也成功 這應該在 C99 之後就有了吧?只是只能用在 POD 上 (還有這個語法不是 array initialization) : 練習13.2 下列兩個編譯可以推斷出vector定義式的什麼資訊? : vector<int> v1(42); //42個元素 每個都是0 : vector<int> v2=v1; //錯誤, : A:這表示 template vector 不提供 copy constructor.(我的答案) : 不是 int沒有提供 assignment 或是 copy. 另一個可能是 vector 的 copy ctor 是 explicit : 練習 13.3 假設 class Point有一個public的 copy ctor, 下列有哪些地方應用? : A: : Point global; : Point foo_bar( Point arg){ //arg: copy ctor, 有 : Point local=arg;// assignment, 無 ^^^^^^^^^^^^^^^^ 這是 imply copy ctor : Point *heap=new Point( global ); //global:copy 有, heap:assignment : *heap=local;//assignment 無 : Point pa[4]={local, *heap}; //初始化pa[4], 前兩個 copy, 後兩個default? : return *heap;//copy ctor 有 : } : 練習 13.5 下列class 哪些 可能要有 copy constructor, : 1. Point3w 內含有4個 浮點數成員. : A: object 內部的 member variable 應該不用 : 2. Matrix 含有一個array 在建構式中動態配置, 解構式中刪除 : A: 有資源配置, 需要copy ctor : 3. Playroll 每個物件都有一個唯一的識別碼 : A: 不確定, 不過 我想唯一性 應該算是一種資源, so 需要? 需要,不訂製的話 id 會被預設行為複寫 : 4. Word 內有一個string和一個vector 後者含有行列對(line-column pair) : A: ??? 不懂"行列對" 是指哪個東西 我也看不懂 XD -- 自High筆記(半荒廢) http://legnaleurc.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.146.194.91

06/08 00:00, , 1F
多謝, 不過 Point local=arg 是不是只要是 宣告同時給值
06/08 00:00, 1F

06/08 00:01, , 2F
編譯器 都是 以copy ctor 編譯?
06/08 00:01, 2F

06/08 00:56, , 3F
pair<int,int> p2={0,42}在c++98是不允許的
06/08 00:56, 3F

06/08 00:56, , 4F
可能是gcc default打開c++0x的新功能(?)
06/08 00:56, 4F

06/08 01:22, , 5F
只要不是 extern 或 reference 都是呼叫 ctors
06/08 01:22, 5F
文章代碼(AID): #1AA-9uRi (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AA-9uRi (C_and_CPP)