《C Primer》中關於array的賦值?

時間 2021-06-03 11:17:03

1樓:藍色

std::array是乙個包含了聚集體的結構,所以正常的賦值法應該是a1=

};這一點兒已經在14中取消,即可以a1=;而它說 a2 = 不能賦值,我以為說的是應該a2 = },但是看它上面的寫法,應該不是。那麼它可能考慮到的是它下面的話,即右邊的與左邊的大小物件不相同。但是我覺得這個說法也比較匪夷所思,為什麼就不能允許我賦值?

#include

#include

#include

using

namespace

std;

intmain();

arr=

};for

(inti=

0;i<5;

i++)}

很像這樣的情況,那麼為什麼不允許我賦值呢?不讓我賦值,我怎麼給陣列元素賦值呢,非要我for迴圈嗎?我想除非是超過了array本身的大小,不允許我賦值是應該的吧,所以我想它應該說的更清楚點兒,比如我的array只有5個元素的大小,你不能賦值5個以上的了吧,也就這樣推斷合理一些兒吧。

2樓:

這是C++11的新特性←這是錯的這是C++14的新特性←這是對的但是g++把自己玩壞了

g++ 4.7 是不行的,會報 `error: no match for 'operator=' in 'array = '',g++ 4.8 可以

但是你看 https://

gcc.gnu.org/projects/cxx1y.html

根本就沒提到這個的支援嘛

C Primer中的型別別名char 的問題?

hardsing typedef引入的不是新型別,而是給現有的型別起乙個別名而const修飾的是 給定型別 換句話說const是對給定型別的修飾,關鍵在於 給定型別 什麼是給定型別呢 typedef char pstring pstring就是char 的別名const pstring cstar ...

C Primer中auto型別的乙個例題?

孤島的雨 正如樓上所說,這裡的const int 中的const是底層const,不是頂層,不能忽略。你可以看58頁中第一行,在指標中頂層與底層const的位置區別 此處auto推斷應該出const int 因為此處const是low level,所以不可忽略,手上只有英文版,2.5.2.The a...

C 雙向引用編譯問題(C Primer中的乙個例子)?

你沒用模板,為什麼 實現 要在標頭檔案裡?如果你是指類的詳細定義在標頭檔案,那是當然的啊,有了詳細定義才能知道大小,才能知道開闢多少空間啊。至於改友元類,我平時就是這麼用的。我其實不太明白為什麼會有對其他類的方法設定友元的操作,按道理就應該是把自己暴露給另乙個類。另外我感覺設計上其實還有很多講究。比...