C++初學(xué)者應(yīng)該注意的問題

總體上必須清楚的:
  1)程序結(jié)構(gòu)是三種: 順序結(jié)構(gòu) , 循環(huán)結(jié)構(gòu)(三個(gè)循環(huán)結(jié)構(gòu)), 選擇結(jié)構(gòu)(if 和 switch)  
2)讀程序都要從main()入口, 然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)?! ?br> 3)計(jì)算機(jī)的數(shù)據(jù)在電腦中保存是以 二進(jìn)制的形式. 數(shù)據(jù)存放的位置就是 他的地址. 
 4)bit是位 是指為0 或者1。 byte 是指字節(jié), 一個(gè)字節(jié) = 八個(gè)位.  
5)一定要記住 二進(jìn)制 如何劃成 十進(jìn)制。

概念??嫉降模骸 ?)編譯預(yù)處理不是C語言的一部分,不再運(yùn)行時(shí)間。C語言編譯的程序稱為源程序,它以ASCII數(shù)值存放在文本文件中。  2)每個(gè)C語言程序中main函數(shù)是有且只有一個(gè)。 
 3)在函數(shù)中不可以再定義函數(shù)?! ?br> 4)算法的是一定要有輸出的,他可以沒有輸入?! ?br> 5)break可用于循環(huán)結(jié)構(gòu)和switch語句?! ?br> 6)逗號(hào)運(yùn)算符的級(jí)別最低。

1)合法的用戶標(biāo)識(shí)符考查:  
合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯(cuò)了?! ?br> 并且第一個(gè)必須為字母或則是下劃線。第一個(gè)為數(shù)字就錯(cuò)了。  
關(guān)鍵字不可以作為用戶標(biāo)識(shí)符號(hào)。
main define scanf printf 都不是關(guān)鍵字。
迷惑你的地方If是可以做為用戶標(biāo)識(shí)符。因?yàn)镮f中的第一個(gè)字母大寫了,所以不是關(guān)鍵字。

2)字符數(shù)據(jù)的合法形式:  '1' 是字符占一個(gè)字節(jié),"1"是字符串占兩個(gè)字節(jié)(含有一個(gè)結(jié)束符號(hào))。  '0' 的ASCII數(shù)值表示為48,'a' 的ASCII數(shù)值是97,'A'的ASCII數(shù)值是65。

3) 整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4個(gè)字節(jié):  考試時(shí)候一般會(huì)說,在16位編譯系統(tǒng),或者是32位系統(tǒng)。碰到這種情況,不要去管,一樣做題。掌握整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4個(gè)字節(jié)就可以了。

4)強(qiáng)制類型轉(zhuǎn)換:  一定是 (int)a 不是 int(a),注意類型上一定有括號(hào)的?! ∽⒁猓╥nt)(a+b)和(int)a+b 的區(qū)別。 前是把a(bǔ)+b轉(zhuǎn)型,后是把a(bǔ)轉(zhuǎn)型再加b。

5)轉(zhuǎn)義字符的考查:  在程序中 int a = 0x6d,是把一個(gè)十六進(jìn)制的數(shù)給變量a 注意這里的0x必須存在?! ≡诔绦蛑?int a = 06d, 是一個(gè)八進(jìn)制的形式?! ≡谵D(zhuǎn)義字符中,’\x6d’ 才是合法的,0不能寫,并且x是小寫。  ‘\141’ 是合法的, 0是不能寫的?!  甛108’是非法的,因?yàn)椴豢梢猿霈F(xiàn)8。

容易犯的錯(cuò)誤
變量
  內(nèi)置類型
  1、在C++中,類型的定義基本和C語言的相同,只是有一些不同。在C++中,根據(jù)C++ Primer中所講,main()函數(shù)的返回類型必須是int型。這個(gè)沒有親自驗(yàn)證過,或者說曾經(jīng)遇到但是沒有注意。估計(jì)使用不同的編譯器結(jié)果是不一樣的吧,有些編譯器會(huì)對(duì)C++的標(biāo)準(zhǔn)進(jìn)行擴(kuò)展。而且空格符不允許出現(xiàn)在預(yù)處理指示中。
  2、在內(nèi)置類型中遇到的第一個(gè)問題是bool類型到底占了多大的存儲(chǔ)空間。這個(gè)是C++標(biāo)準(zhǔn)未定義的,編譯器可以根據(jù)自己的想法規(guī)定bool類型所占據(jù)的存儲(chǔ)空間。
  3、C++中有一種類型叫wchar_t,叫寬字符。是對(duì)char類型的擴(kuò)展,占有兩個(gè)字節(jié)的存儲(chǔ)空間。寬字符字符串表示為L"hello world".其中,連接字符串字面值和寬字符串字面值,其結(jié)果是未定義的,這樣的程序可能會(huì)執(zhí)行,崩潰或者產(chǎn)生沒有用的值,在不同的編譯器下程序的結(jié)果可能會(huì)不同。
  4、C++中初始化有兩種方法:一種是直接初始化,如int val(1024);另一種是復(fù)制初始化,如int val=1024.
  5、extern關(guān)鍵字表示聲明變量而不是定義變量。只有當(dāng)extern聲明位于函數(shù)外部時(shí),才可以含有初始化式。
  6、局部變量可以屏蔽全局變量,而不是平常認(rèn)為的重復(fù)定義,只有在同一個(gè)作用域中的同名定義變量才會(huì)被編譯器認(rèn)為是重復(fù)定義。
  7、非const變量定義在全局作用域中,如果做了合適的聲明,就可以在另外的文件中使用。即,在全局作用域定義非const變量時(shí),它可以在整個(gè)程序中訪問,方法是在一個(gè)文件中定義,在另一個(gè)文件中用extern聲明即可。而全局的const變量是定義該對(duì)象的文件的局部變量,中存在于那個(gè)文件中。不能被其他文件訪問,若指定其為extern就可以全部訪問了。這個(gè)在C++ primer中我感覺是一句廢話。其根源是非const變量默認(rèn)是extern的。const類型在定義時(shí)必須初始化。
  8、引用必須用與該引用同類型的對(duì)象初始化。const引用時(shí)指向const對(duì)象的引用。非const引用只能綁定到與該引用同類型的對(duì)象;const引用則可以綁定到不同但相關(guān)的類型的對(duì)象或綁定到右值。如:
  double dval=3.14;
  const int &ri=dval;
  編譯器會(huì)默認(rèn)將其轉(zhuǎn)換為:
  int temp=dval;
  const int &ri=temp;
  9、若ri為非const,則修改ri只是改變了temp,而為改變dval.所以僅允許const引用綁定到需要臨時(shí)使用的值是完全必要的。頭文件中可以定義類,值在編譯時(shí)就可以知道的const對(duì)象和inline函數(shù)。當(dāng)const對(duì)象是由常量表達(dá)式初始化時(shí),要放在頭文件中;相反,要放在源文件中,并在其它文件中添加extern.
  標(biāo)準(zhǔn)庫類型
  1、迭代器iterator中,vector對(duì)象ivec.end(); 返回的是末端元素的下一個(gè)地址。
  2、使用const_iterator類型時(shí),我們可以得到一個(gè)迭代器,它自身的值可以改變,但不能用來修改其指向的元素的值,可以對(duì)迭代器進(jìn)行自增一級(jí)使用解引用來讀取值,但不能對(duì)該元素進(jìn)行賦值。
  3、const iterator只能用它來改寫指向的元素,不能使它指向其他元素,且必須進(jìn)行初始化。
  4、任何改變vector長度的操作都會(huì)使已存在的迭代器失效。
  數(shù)組和指針
  1、在函數(shù)體外定義的數(shù)組,其元素均初始化為0;在函數(shù)體內(nèi)定義的內(nèi)置類型的數(shù)組,其元素?zé)o初始化。不管數(shù)組定義在哪里,如果其元素為類類型,則自動(dòng)調(diào)用該類的默認(rèn)構(gòu)造函數(shù)進(jìn)行初始化。數(shù)組是不允許直接復(fù)制和賦值的。
  2、指針和引用的區(qū)別:①引用總是指向某個(gè)對(duì)象,定義引用時(shí)沒有初始化是錯(cuò)誤的。②給引用賦值時(shí)改變的是引用所關(guān)聯(lián)的對(duì)象的值,而不是使引用與另一個(gè)對(duì)象關(guān)聯(lián)。
  3、不允許一個(gè)非const對(duì)象指針指向一個(gè)const對(duì)象。允許吧非const對(duì)象地址賦值給一個(gè)指向const對(duì)象的指針。
  4、指向const對(duì)象的指針: const int p;.const 指針:int const p; //定義時(shí)必須初始化
  5、釋放動(dòng)態(tài)申請(qǐng)的數(shù)組時(shí)要用delete[] p;不能只是delete p;這樣會(huì)造成內(nèi)存泄露。
  6、typedef:
  typedef String pstring;
  const pstring cstr;==String * const pstring;
  因?yàn)閏onst形容的是cstr,所以要放在它們中間。
  表達(dá)式
  1、求模的操作數(shù)只能為整數(shù)類型,如bool,char,short,int,long.如果兩個(gè)數(shù)都是負(fù)數(shù),求模的結(jié)果為負(fù)數(shù)或者零,如果一正一負(fù),則結(jié)果視機(jī)器或編譯器而定。
  2、在一個(gè)表達(dá)式里,不要在兩個(gè)或更多的子表達(dá)式中對(duì)同一個(gè)對(duì)象做自增或自減操作。這樣的行為時(shí)未定義的。
  3、對(duì)于包含signed和unsigned型的表達(dá)式,signed型會(huì)被轉(zhuǎn)換為unsigned型。
  4、如果逗號(hào)操作符最右邊的操作數(shù)是左值,則逗號(hào)表達(dá)式的值也是左值。
  函數(shù)
  1、指針形參:若函數(shù)的形參是指向非const類型的指針,則傳遞的實(shí)參只能是指向非const類型的指針;若函數(shù)形參是指向const類型的指針,則傳遞指向const和非const類型的指針都可以。原因是:可以將指向const對(duì)象的指針初始化為指向非const對(duì)象,但不可以讓指向非const對(duì)象的指針指向const對(duì)象。
  2、引用形參:如果函數(shù)有非const引用形參,則不能通過const對(duì)象進(jìn)行調(diào)用。
  3、在調(diào)用函數(shù)時(shí),如果該函數(shù)使用非引用的非const形參,則既可以給函數(shù)傳遞const實(shí)參,也可以給函數(shù)傳遞非const的實(shí)參。原因是在C語言中,具有const形參或非const形參并無區(qū)別,都是實(shí)參的副本,這里主要是與C語言兼容。原因:實(shí)參傳遞時(shí)復(fù)制傳遞,可以用const對(duì)象初始化非const對(duì)象,反之亦然。
  4、通過引用傳遞數(shù)組,編譯器會(huì)檢查數(shù)組實(shí)參大小與形參大小是否匹配。若直接傳遞數(shù)組,編譯器只是傳遞了指向數(shù)組第一個(gè)元素的指針,并不進(jìn)行數(shù)組大小的匹配。如:
  void func(int (&arr)[10]);
  傳遞多維數(shù)組方法:
  void func(int (arr
)[10]);
  //或者
  void func(int arr[][10]);
  5、如果一個(gè)函數(shù)的形參具有默認(rèn)實(shí)參,那么,它后面所有的形參都必須具有默認(rèn)實(shí)參。要給一個(gè)帶默認(rèn)實(shí)參的形參提供實(shí)參,那么也必須給它前面的帶默認(rèn)實(shí)參的形參提供實(shí)參。在一個(gè)文件中,只能為一個(gè)形參指定默認(rèn)實(shí)參一次,一般在聲明中指定默認(rèn)實(shí)參。若在定義中的形參表中指定默認(rèn)實(shí)參,那么只有在包含該函數(shù)定義的源文件中調(diào)用該函數(shù)是,默認(rèn)實(shí)參才有效,所以說,默認(rèn)實(shí)參一般要定義在頭文件中。
  6、編譯器隱式的將在類內(nèi)定義的成員函數(shù)當(dāng)做內(nèi)聯(lián)函數(shù)。
  7、類中成員函數(shù)形參表后面的const表明this是指向const對(duì)象的指針,不能修改調(diào)用該函數(shù)的對(duì)象,這種函數(shù)叫const成員函數(shù)。
  8、關(guān)于函數(shù)指針:
  //①表示cmpFcn是一種指向函數(shù)的指針類型名字。
  Typedef bool (
cmpFcn)(const string&,const string&);
  //② 函數(shù)指針不存在類型轉(zhuǎn)換。
  //③ 調(diào)用函數(shù)指針的方法如:
  //函數(shù)聲明為
  bool lengthCompare(const String&,const String&);
  cmpFcn pf=lengthcompare;
  lengthCompare("hi","bye");//函數(shù)名直接調(diào)用
  pf("hi","bye");//函數(shù)指針調(diào)用
 ?。?/em>pf) ("hi","bye");//函數(shù)解引用調(diào)用
  //④函數(shù)指針型的形參:
  void useBigger(bool(const String&,const String&));
  void useBigger(bool()(const String&,const String&));
  標(biāo)準(zhǔn)IO庫
  1、IO對(duì)象不可復(fù)制或賦值。由于流對(duì)象不能復(fù)制,隨意不能存在vector容器中。形參或返回類型不能為流對(duì)象。必須傳遞或返回IO對(duì)象的指針或者引用。引用必須是非const類型的。
  類
  1、const成員不能改變其所操作的對(duì)象的數(shù)據(jù)成員。const必須同時(shí)出現(xiàn)在聲明和定義中,若只在定義或者聲明中出現(xiàn)一處,就會(huì)出現(xiàn)編譯錯(cuò)誤。
  2、不能從const成員函數(shù)返回指向類對(duì)象的普通引用,const成員只能返回
this作為一個(gè)const引用。
  3、顯式指定inline成員時(shí),可以在類內(nèi)聲明時(shí)寫inline,也可在類外寫inline,但是只能二者選一。
  4、因?yàn)轭惪梢韵蚯奥暶?,即只是聲明,如:class A;卻不定義類的成員,所以該類不能創(chuàng)建對(duì)象。但是可以定義該類的指針或者引用。這樣便可以定義一個(gè)class A{ public:A next;};類似C語言中鏈表所表示的結(jié)構(gòu)一樣。
  5、使用類的方法有兩種:一種為A temp;另一種為class A temp;.這是為了和C語言的結(jié)構(gòu)體兼容。
  6、const對(duì)象只能使用const成員。非const對(duì)象可以使用任意成員。
  7、Mutable表示可變數(shù)據(jù)成員,甚至當(dāng)它是const對(duì)象也是如此。將數(shù)據(jù)成員前加上mutable關(guān)鍵字,const成員函數(shù)就可以改變該成員變量的值了。
  8、成員函數(shù)形參表和函數(shù)體處于類作用域中,這兩個(gè)可以直接使用類內(nèi)定義的類型或者變量。函數(shù)的返回值類型不一定在類作用域中,與形參表相比,返回值類型出現(xiàn)在成員函數(shù)名字前面。如果函數(shù)定義在類定義體外,則用于返回值類型的名字在類作用域之外。如果返回值類型使用類定義的類型,則必須使用完全限定名。而形參表和成員函數(shù)體都出現(xiàn)在成員名之后,這些都是淚的作用域中定義,所以不用限定而使用其他成員。如:
  class Screen{
  public:
  Typedef std::string::size_type index;
  Index get_cursor() const;
  private:
  Int cursor;
  };
  Inline Screen::index Screen::get_cursor()const{
  return cursor;
  }
  9、一旦一個(gè)名字被用作類型名,該名字就不能被重復(fù)定義。構(gòu)造函數(shù)不能聲明為const,因?yàn)檫@完全沒有意義,構(gòu)造函數(shù)的性質(zhì)就是要給數(shù)據(jù)成員進(jìn)行賦值的。
  10、構(gòu)造函數(shù)可以用初始化列表或函數(shù)體內(nèi)賦值進(jìn)行初始化。但賦值并不是顯式的初始化,而是構(gòu)造函數(shù)執(zhí)行時(shí)先對(duì)數(shù)據(jù)成員進(jìn)行默認(rèn)初始化,然后再賦值覆蓋。從概念上講,可以認(rèn)為構(gòu)造函數(shù)分為兩個(gè)階段執(zhí)行:初始化階段;普通計(jì)算階段。計(jì)算階段由構(gòu)造函數(shù)函數(shù)體中的語句組成。不管數(shù)據(jù)成員是否在構(gòu)造函數(shù)初始化列表中顯式初始化,類類型的數(shù)據(jù)成員總是在初始化階段進(jìn)行初始化。初始化發(fā)生在計(jì)算階段之前。
  11、根據(jù)上述規(guī)定,可以得出:有些成員必須在構(gòu)造函數(shù)初始化列表中進(jìn)行初始化。對(duì)于這樣的成員,在構(gòu)造函數(shù)體重對(duì)它們初始化不起作用。沒有默認(rèn)構(gòu)造函數(shù)的類類型的成員,const或者引用類型成員必須在構(gòu)造函數(shù)初始化列表中進(jìn)行初始化,而不能在構(gòu)造函數(shù)函數(shù)體中進(jìn)行賦值初始化。
  12、數(shù)據(jù)成員初始化的順序和數(shù)據(jù)成員聲明的順序一致,而不是根據(jù)構(gòu)造函數(shù)的初始化列表的順序一致。
  13、只要定義一個(gè)對(duì)象時(shí)沒用提供初始化式,就使用了該類的默認(rèn)構(gòu)造函數(shù)。如:A a;使用的是默認(rèn)構(gòu)造函數(shù),而A a(37);表示使用了其他構(gòu)造函數(shù)。
  14、只有類沒有定義構(gòu)造函數(shù)時(shí),編譯器才會(huì)自動(dòng)生成一個(gè)默認(rèn)構(gòu)造函數(shù)。
  15、單個(gè)實(shí)參調(diào)用的構(gòu)造函數(shù)定義了從形參類型到該類類型的一個(gè)隱式轉(zhuǎn)換。如:
  class Sales_item{
  public:
  sales_item(const std::string &book=""):isbn(book),unit(0),revenue(0.0){}
  void same_isbn(Sales_item si);
  };
  //當(dāng)使用對(duì)象調(diào)用
  Sales_item item;
  Item.same_isbn("123556");
  //就會(huì)調(diào)用sales_item的單形參的構(gòu)造函數(shù)實(shí)例化一個(gè)新對(duì)象,然后傳給same_isbn做實(shí)參。從而實(shí)現(xiàn)隱式轉(zhuǎn)換。若要避免隱式轉(zhuǎn)換,就要在構(gòu)造函數(shù)聲明前加上expl//icit,explicit用于類內(nèi)部的構(gòu)造函數(shù)聲明上,在類定義體外部不再重復(fù)。
  16、友元只能出現(xiàn)在類定義的內(nèi)部。
  17、當(dāng)我們在類外部定義static成員時(shí),無需重復(fù)指定static保留字,該保留字只出現(xiàn)在類定義體內(nèi)部聲明處。static成員函數(shù)不能被聲明為const,因?yàn)閏onst就是承諾不會(huì)修改該函數(shù)所屬對(duì)象的數(shù)據(jù)成員,但是static 不屬于任何對(duì)象,static不能聲明為虛函數(shù)。static成員可以通過作用域操作符,對(duì)象,引用或指向該類類型的對(duì)象的指針調(diào)用。
  18、static成員函數(shù)沒有this形參,它可以直接訪問所屬類的static成員,但不能直接使用非static成員。
  19、當(dāng)static成員在類外部定義時(shí),static只寫在類定義體內(nèi)部的聲明處。
  20、static數(shù)據(jù)成員只能定義在類定義體外部,并且進(jìn)行初始化,static只能在聲明處標(biāo)識(shí)。因?yàn)槠胀〝?shù)據(jù)成員不能在類的定義體中初始化,但static成員定義時(shí)必須初始化,所以只能定義在定義體外部。
  21、const static數(shù)據(jù)成員可以在類定義體內(nèi)部進(jìn)行初始化,但是數(shù)據(jù)成員必須在類定義體外部進(jìn)行定義。只是在類內(nèi)部初始化時(shí),數(shù)據(jù)成員的定義不再指定初始值。
  22、static數(shù)據(jù)成員可以做默認(rèn)實(shí)參,其他數(shù)據(jù)成員不可以。
  23、static數(shù)據(jù)成員的類型可以是該類成員所屬的類型,如:
  class Bar{
  public:
  private:
  static Bar men1;//ok
  Bar * men2;//ok
  Bar men3;//error
  };
  復(fù)制控制
  1、若要禁止復(fù)制,必須聲明其復(fù)制構(gòu)造函數(shù)為private,若想友元和成員中的復(fù)制也禁止,就可以聲明但是不定義一個(gè)private的復(fù)制構(gòu)造函數(shù)。
  2、如果沒有顯式定義復(fù)制構(gòu)造函數(shù)或者賦值操作符,編譯器通常會(huì)提供一個(gè)默認(rèn)的。
  3、當(dāng)定義一個(gè)新對(duì)象,并用一個(gè)同類型的對(duì)象對(duì)他進(jìn)行初始化時(shí),將顯式使用復(fù)制構(gòu)造函數(shù);當(dāng)將該類型的對(duì)象傳遞給函數(shù)或從函數(shù)返回值返回該類型的對(duì)象時(shí),將隱式使用復(fù)制構(gòu)造函數(shù)。
  4、使用未定義的成員的任何嘗試將導(dǎo)致鏈接錯(cuò)誤。
  5、如果定義了復(fù)制構(gòu)造函數(shù),編譯器不會(huì)自動(dòng)生成默認(rèn)構(gòu)造函數(shù),所以要自己定義默認(rèn)構(gòu)造函數(shù)。
  6、合成析構(gòu)函數(shù)并不刪除指針成員所指向的對(duì)象。
  7、即使編寫了自己的析構(gòu)函數(shù),合成析構(gòu)函數(shù)仍然運(yùn)行。當(dāng)撤銷對(duì)象時(shí),先運(yùn)行自定義的析構(gòu)函數(shù),然后運(yùn)行合成析構(gòu)函數(shù)。
  重載操作符
  1、::,.
,.,?:不可重載。
  2、重載操作符必須具有一個(gè)類類型的操作數(shù)或枚舉類型。優(yōu)先級(jí)和結(jié)合性是固定的且不具備短路求值的特征。
  3、除了函數(shù)調(diào)用操作符operator()之外,重載操作符時(shí)使用默認(rèn)實(shí)參是非法的。
  4、操作符定義為非成員函數(shù)時(shí),通常必須將它們設(shè)置為所操作類的友元。為的是可以訪問類的私有成員。
  5、=,(),[],->操作符必須定義為成員,將這些操作符定義為非成員函數(shù)將在編譯時(shí)標(biāo)記為錯(cuò)誤。而復(fù)合賦值操作符如+=通常定義為成員,但是定義為非成員,編譯時(shí)不會(huì)出錯(cuò)。改變對(duì)象狀態(tài)的操作符如自增操作符要定義為成員函數(shù)。算數(shù)的,相等的,關(guān)系操作符位操作符一般定義為普通函數(shù)。箭頭操作符必須定義為類的成員函數(shù),解引用操作符不要求定義成員。()調(diào)用操作符必須聲明為成員函數(shù),一個(gè)類可以定義多個(gè)調(diào)用操作符版本。定義了調(diào)用操作符的類,其對(duì)象稱為函數(shù)對(duì)象。即它的行為是類似函數(shù)的對(duì)象。
  6、為了與內(nèi)置類型保持一致,加法返回一個(gè)右值,而不是一個(gè)引用。
  7、類定義下標(biāo)操作符時(shí),一般需要定義兩個(gè)版本:一個(gè)為非const成員并返回引用;一個(gè)味const成員并返回const引用。
  8、前綴操作符:A& operator++();.后綴操作符:A& operator++(int);int形參只是一個(gè)標(biāo)識(shí),沒有實(shí)際用途。
  9、轉(zhuǎn)換操作符 operator type();type表示內(nèi)置類型名,類類型名,由類型別名定義的名字。對(duì)任何可作為函數(shù)返回類型的類型(除了void外)都可以定義轉(zhuǎn)換函數(shù)。不允許轉(zhuǎn)換為數(shù)組類型或函數(shù)類型。轉(zhuǎn)化為指針類型(數(shù)據(jù)或函數(shù)指針)以及引用類型時(shí)可以的。轉(zhuǎn)換操作符函數(shù)必須是成員函數(shù),不能指定返回類型,形參表為空。
  10、只能用一個(gè)類類型轉(zhuǎn)換,即,定義a能轉(zhuǎn)換為b,b能轉(zhuǎn)換為c,但a不能轉(zhuǎn)換為b再轉(zhuǎn)換為c.

學(xué)習(xí)過程中遇到什么問題或者想獲取學(xué)習(xí)資源的話,可以加我qq
1795495547,我們一起學(xué)C/C++!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,539評(píng)論 1 51
  • C++文件 例:從文件income. in中讀入收入直到文件結(jié)束,并將收入和稅金輸出到文件tax. out。 檢查...
    SeanC52111閱讀 2,855評(píng)論 0 3
  • 本文博客園地址:http://www.cnblogs.com/xiongxuanwen/p/4290086.htm...
    先之閱讀 863評(píng)論 0 5
  • 1.block 一對(duì)一的通信,不需要定義協(xié)議方法; 2.notification 一對(duì)多通信 ,通信對(duì)象間不需要建...
    一代驕馬閱讀 198評(píng)論 0 0
  • 時(shí)間過去久遠(yuǎn),關(guān)于本書,只想到給我留下印象最深的兩個(gè)字:賦能。 埃里克是一名可以在火人節(jié)中游刃有余的計(jì)算機(jī)科學(xué)家,...
    niuniuniu閱讀 456評(píng)論 0 0