91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

string 構造函數,=,整數 賦值給 string 引起的 坑

發布時間:2020-05-27 19:49:35 來源:網絡 閱讀:822 作者:qdqade 欄目:編程語言

對string 理解構造和賦值理解不清引起的錯誤。

起因:

string a;

int i=1;

a=i;//不報錯,不警告


int c=330;//大于256

a=c;//不警告,不報錯


a=330;//warning: overflow in implicit constant conversion


string str=3;// error: invalid conversion from 'int' to 'const char*'

string str(3);// error: invalid conversion from 'int' to 'const char*'


上述 的解釋


賦值 = 和構造函數的區別


string a=3; 調用的 是 構造函數


a=3; 調用的 是= 操作符


查看 string 官方文檔

http://www.cplusplus.com/reference/string/string/string/


構造函數:

default (1)
string();
copy (2)
string (const string& str);
substring (3)
string (const string& str, size_t pos, size_t len = npos);
from c-string (4)
string (const char* s);
from sequence (5)
string (const char* s, size_t n);
fill (6)
string (size_t n, char c);
range (7)
template <class InputIterator>
  string  (InputIterator first, InputIterator last);


賦值 =:

string (1)

string& operator= (const string& str);

c-string (2)

string& operator= (const char* s);

character (3)

string& operator= (char c);


看到 “=” 分為兩種情況:

  1. = operator 

  2. copy constructor


如果新定義一個對象,一定會調用構造函數/拷貝構造,不會調=操作,

舉例 string a="fdjhf", a 是定義,會調用其構造函數


沒有新對象定義

string a,b;a=b; 這里調用 = 操作符

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳朔县| 蛟河市| 天柱县| 嘉荫县| 突泉县| 绥江县| 永德县| 肥西县| 额济纳旗| 镇原县| 日照市| 鄂托克前旗| 凉城县| 遵义县| 郎溪县| 宿松县| 随州市| 蒙自县| 丰台区| 板桥市| 凌海市| 青冈县| 宝应县| 浦江县| 拜泉县| 沁水县| 玛纳斯县| 兴隆县| 西乌| 开阳县| 凤凰县| 响水县| 特克斯县| 静宁县| 济阳县| 德惠市| 罗定市| 富源县| 哈尔滨市| 乐昌市| 留坝县|