欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      C++常用填空題

      時(shí)間:2019-05-12 20:34:55下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《C++常用填空題》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《C++常用填空題》。

      第一篇:C++常用填空題

      一、單項(xiàng)選擇題(共20題,每題1分,共20分)

      6、對(duì)重載函數(shù)形參的描述中,錯(cuò)誤的是 D

      A.參數(shù)的個(gè)數(shù)可能不同

      B.參數(shù)的類型可能不同

      C.參數(shù)的順序可能不同

      D.參數(shù)的個(gè)數(shù)、類型、順序都相同,只是函數(shù)的返回值類型不同

      9、通常的拷貝構(gòu)造函數(shù)的參數(shù)是

      A. 某個(gè)對(duì)象名 B.某個(gè)對(duì)象成員名

      C. 某個(gè)對(duì)象的引用 D.某個(gè)對(duì)象的指針名

      10、關(guān)于構(gòu)造函數(shù)特點(diǎn)的描述中,錯(cuò)誤的是

      A.定義構(gòu)造函數(shù)必須指出類型

      B.構(gòu)造函數(shù)的名字與該類的類名相同

      C.一個(gè)類中可定義0至多個(gè)構(gòu)造函數(shù)

      D.構(gòu)造函數(shù)是一種成員函數(shù)

      12、關(guān)于常成員的描述中,錯(cuò)誤的是

      A.常成員包含常數(shù)據(jù)成員和常成員函數(shù)兩種

      B.常數(shù)據(jù)成員必須是公有的C.常數(shù)據(jù)成員要使用構(gòu)造函數(shù)成員初始化列表進(jìn)行初始化

      D.常對(duì)象只能調(diào)用它的常成員函數(shù),不能調(diào)用其它的成員函數(shù)

      13、關(guān)于友元函數(shù)的描述中,錯(cuò)誤的是

      A.友元函數(shù)不是成員函數(shù)

      B.友元函數(shù)只能訪問(wèn)類中私有成員

      C.友元函數(shù)破壞隱藏性,盡量少用

      D.友元函數(shù)說(shuō)明在類體內(nèi),使用關(guān)鍵字friend18、能夠釋放對(duì)象所占資源的是(析構(gòu)函數(shù))

      二、填空題(共9題16空,每空1分,共16分)

      1、函數(shù)重載時(shí),編譯系統(tǒng)會(huì)根據(jù)_形參的類型或形參的個(gè)數(shù) 來(lái)區(qū)分。

      3、若希望用一個(gè)已有對(duì)象來(lái)構(gòu)造另一個(gè)同類型的對(duì)象,可以使用拷貝構(gòu)造函數(shù)來(lái)實(shí)現(xiàn)。

      4、靜態(tài)成員屬于類,而不屬于任何一個(gè)對(duì)象,它被同一個(gè)類的所有對(duì)象共享。

      5、類的繼承方式有私有 繼承、公有 繼承和保護(hù)繼承。

      6、重載運(yùn)算符的含義必須清楚,不能有二義性。

      7、按照聯(lián)編進(jìn)行階段的不同,聯(lián)編方法可分為兩種: 動(dòng)態(tài)聯(lián)編 和靜態(tài)聯(lián)編。

      8、當(dāng)基類中的某個(gè)成員函數(shù)被聲明為虛函數(shù)后,此虛函數(shù)就可以在一個(gè)或多個(gè)派生類中被重新定義,在派生類中重新定義時(shí),其函數(shù)原型,包括返回類型、參數(shù)名、函數(shù)個(gè)數(shù)、參數(shù)類型以及參數(shù)的順序都必須與基類中的原型完全相同。

      1.在類中必須聲明成員函數(shù)的原型,成員函數(shù)的實(shí)現(xiàn)部分可以寫(xiě)在類外。

      2.如果需要在被調(diào)函數(shù)運(yùn)行期間,改變主調(diào)函數(shù)中實(shí)參變量的值,則函數(shù)的形參應(yīng)該是引用類型或指針類型。

      3.抽象類只能作為基類使用,而不能聲明它的對(duì)象。

      4.進(jìn)行函數(shù)重載時(shí),被重載的同名函數(shù)如果都沒(méi)有用const修飾,則它們的形參個(gè)數(shù)或類型必須不同。

      5.通過(guò)一個(gè)常對(duì)象只能調(diào)用它的常成員函數(shù),不能調(diào)用其他成員函數(shù)。

      6.函數(shù)的遞歸調(diào)用是指函數(shù)直接或間接地調(diào)用自身。

      7.拷貝構(gòu)造函數(shù)的形參必須是本類對(duì)象的引用。

      第二篇:C++實(shí)驗(yàn)

      上機(jī)實(shí)驗(yàn):

      1、回文是指正讀,反讀均相同的字符序列,如“abba”和“abdba”均是回文,但是“good”不是回文,試用STACK類編寫(xiě)該程序。

      #include #include #include int IsPalindrome(const char *cScr);void main(void){ char cStr[21];while(1){ gets(cStr);printf(“%dn”,IsPalindrome(cStr));} } int IsPalindrome(const char *cScr){ int iLen = strlen(cScr);//預(yù)留數(shù)組首元素,棧頂從第二元素開(kāi)始

      int top = 1;char *cMyStack =(char *)malloc((iLen/2+1)*sizeof(char));//定位對(duì)原始數(shù)組的檢測(cè)索引初始位置 cMyStack[0] = iLen/2;if(1 == iLen%2){ ++cMyStack[0];}

      //將原始數(shù)組的一半元素入棧 for(top=1;top<=iLen/2;top++){ cMyStack[top] = *(cScr+top-1);} //從棧頂開(kāi)始依次匹配

      while(*(cScr+cMyStack[0])== cMyStack[--top] && cMyStack[0]++ < iLen){} if(0 == top){//是回文數(shù) free(cMyStack);return 1;} else {//不是回文數(shù)

      free(cMyStack);return 0;} } 運(yùn)行結(jié)果:

      2.利用兩個(gè)棧類S1、S2模擬一個(gè)隊(duì)列時(shí),編寫(xiě)一程序利用棧的運(yùn)算實(shí)現(xiàn)隊(duì)列的插入、刪除以及判斷隊(duì)列空的運(yùn)算。

      #include #include #include using namespace std;template class stack2queue{ public: void pushBack(T);void popFront();T& front();bool empty()const;private: stack mStack1;stack mStack2;};template void stack2queue::pushBack(T x){ mStack1.push(x);}

      template void stack2queue::popFront(){ if(mStack2.empty()){ while(!mStack1.empty()){ mStack2.push(mStack1.top());mStack1.pop();} }

      assert(!mStack2.empty());mStack2.pop();} template T& stack2queue::front(){ if(mStack2.empty()){ while(!mStack1.empty()){ mStack2.push(mStack1.top());mStack1.pop();} } assert(!mStack2.empty());return mStack2.top();} template bool stack2queue::empty()const{ return(mStack1.empty()&& mStack2.empty());} template void printQueue(stack2queue q){ cout << “From front to back:/t(”;if(!q.empty()){ cout << q.front();q.popFront();while(!q.empty()){ cout << “, ” << q.front();q.popFront();} }else{ cout << “NULL”;} cout << “)” << endl;} int main(){ stack2queue sq;

      sq.pushBack(1);printQueue(sq);sq.pushBack(2);printQueue(sq);sq.pushBack(3);printQueue(sq);sq.popFront();printQueue(sq);sq.popFront();printQueue(sq);sq.popFront();printQueue(sq);return 0;} 運(yùn)行結(jié)果:

      實(shí)驗(yàn)2:

      聲明復(fù)數(shù)的類Complex,使用友元函數(shù)add實(shí)現(xiàn)復(fù)數(shù)的加法。

      #include < iostream > using namespace std;

      class Complex { private:

      double real, image;public :

      Complex(){}

      Complex(double a,double b)

      {

      real = a;image = b;}

      void setRI(double a, double b){

      real = a;image = b;} double getReal(){ return real;}

      double getImage(){ return image;} void print(){ if(image>0)

      cout<<“復(fù)數(shù):”<< real <<“ + ”<< image <<“i”<< endl;if(image<0)

      cout<<“復(fù)數(shù):”<< real <<“-”<< image <<“i”<< endl;}

      friend Complex add(Complex ,Complex);//聲明友元函數(shù) };

      Complex add(Complex c1, Complex c2)//定義友元函數(shù)

      {

      Complex c3;

      c3.real = c1.real + c2.real;//訪問(wèn)Complex類中的私有成員

      c3.image = c1.image + c2.image;return c3;}

      void main(){

      Complex c1(29, 0.634), c2, c3;c2.setRI(85,106.012);c3 = add(c1, c2);

      cout<<“復(fù)數(shù)一:”;c1.print();cout<<“復(fù)數(shù)二:”;c2.print();cout<<“相加后:”;c3.print();}

      結(jié)果:

      實(shí)驗(yàn)三:

      7-5 定義一個(gè)基類Shape,在此基礎(chǔ)上派生出一個(gè)Rectangle和Circle,二者都有g(shù)etArea()函數(shù)計(jì)算對(duì)象的面積。使用Rectangle類創(chuàng)建一個(gè)派生類Square.#include using namespace std;#define PI 3.1415926 class Shape {

      public: Shape(){}

      double GetArea()

      {

      return 0.1;}

      };class Rectangle: public Shape {

      public:

      Rectangle(double w,double h)

      {

      width=w;height=h;}

      double GetArea(){

      return width*height;}

      private: double width,height;};class Circle:public Shape { private: double r;

      public: Circle(double rr){ r=rr;}

      double GetArea(){

      return PI*r*r;} };

      int main(){

      Rectangle * rec=new Rectangle(5,6);

      Circle * cir=new Circle(5);

      cout<<“RecArea:”<GetArea()<

      cout<<“CirArea:”<GetArea()<

      return 1;

      } 運(yùn)行結(jié)果:

      7-10.定義一個(gè)Object類,有數(shù)據(jù)成員weight及相應(yīng)的操作函數(shù),由此派生出Box類,增加數(shù)據(jù)成員height和width及相應(yīng)的操作函數(shù),聲明一個(gè)Box對(duì)象,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。#include class object { private: int Weight;public:

      object(){ cout<<“構(gòu)造object對(duì)象”<

      class box:public object

      { private: int Height,Width;public: box(){

      cout<<“構(gòu)造box對(duì)象”<

      第三篇:C++實(shí)驗(yàn)報(bào)告

      姓名:XX 學(xué)院:XXX 班級(jí):XXX 學(xué)號(hào):XXX

      i++;

      } while(i<=10);cout<<“sum=”<

      #include using namespace std;void main(){ int i(1),sum(0);

      for(i;i<=10,i++)

      {

      sum+=i;

      }

      cout<<“sum=”< using namespace std;const float pi=3.1416;void main(){ int itype;

      cout<<“不是合法的輸入”< using namespace std;struct riqi { int year;int mon;int day;int hour;int minut;int second;};void main(){ riqi a;cout<<“輸入時(shí)間日期”<>a.year;cout<<“輸入月份”<

      實(shí)驗(yàn)

      三、函數(shù)的應(yīng)用(2學(xué)時(shí))

      1、實(shí)驗(yàn)?zāi)康模?/p>

      掌握函數(shù)的定義和調(diào)用方法。練習(xí)重載函數(shù)使用。練習(xí)函數(shù)模板的使用 練習(xí)使用系統(tǒng)函數(shù)。

      在main()函數(shù)中提示輸入兩個(gè)整數(shù)x,y,使用cin語(yǔ)句得到x,y的值,調(diào)用pow(x,y)函數(shù)計(jì)算x的y次冪的結(jié)果,再顯示出來(lái)。程序名:lab3_4.cpp。

      編寫(xiě)遞歸函數(shù)int fib(int n),在主程序中輸入n的值,調(diào)用fib函數(shù)計(jì)算Fibonacci級(jí)數(shù)。公式為fib(n)=fib(n-1)+fib(n-2),n>2;fib(1)=fib(2)=1。使用if語(yǔ)句判斷函數(shù)的出口,在程序中用cout語(yǔ)句輸出提示信息。程序名:lab3_5.cpp。

      7)調(diào)試操作步驟如下:

      選擇菜單命令Build|Start Debug |Step In,系統(tǒng)進(jìn)入單步執(zhí)行狀態(tài),程序開(kāi)始運(yùn)行,并出現(xiàn)一個(gè)DOS窗口,此時(shí)光標(biāo)停在main()函數(shù)的入口處。

      把光標(biāo)移到語(yǔ)句answer=fib(n)前,從Debug菜單單擊Run To Cursor,在程序運(yùn)行的DOS窗口中按提示輸入數(shù)字10,這時(shí)回到可視界面中,光標(biāo)停在第11行,觀察一下n的值。

      從Debug菜單中單擊Step Into,程序進(jìn)入fib函數(shù),觀察一下n的值,把光標(biāo)移到語(yǔ)句return(fib(n-2)+fib(n-1))前,從Debug菜單單擊Run to Cursor,再單擊Step Into,程序遞歸調(diào)用fib函數(shù),又進(jìn)入fib函數(shù),觀察n的值。

      繼續(xù)執(zhí)行程序,參照上述的方法,觀察程序的執(zhí)行順序,加深對(duì)函數(shù)調(diào)用和遞歸調(diào)用的理解。

      再試試Debug菜單欄中的別的菜單項(xiàng),熟悉Debug的各種方法。

      4、實(shí)驗(yàn)原理

      C++中函數(shù)的重載使得同樣的函數(shù)名下,只要參數(shù)類型、數(shù)目不同時(shí),即可根據(jù)輸入的數(shù)據(jù)進(jìn)行相應(yīng)的函數(shù)調(diào)用,使用起來(lái)簡(jiǎn)單方便。

      5、思考與體會(huì)

      C++中,函數(shù)的運(yùn)用與之前學(xué)過(guò)的C語(yǔ)言既有相同之處,也有著不同的地方。相同的地方在于格式、用法等框架上的不變。但是C語(yǔ)言中對(duì)于同樣的函數(shù)名是只能夠申明一種函數(shù)的,倘若有相同的函數(shù)名出現(xiàn)系統(tǒng)即會(huì)報(bào)錯(cuò),所以用起來(lái)有時(shí)是極為不便

      0

      //參數(shù)為兩個(gè)雙精度浮點(diǎn)形的函數(shù) int max1(double a,double b){ a=a>b?a:b;return a;} //參數(shù)為三個(gè)雙精度浮點(diǎn)形的函數(shù) int max1(double a,double b,double c){ a=a>b?a:b;a=a>c?a:c;return a;} void main(void){ int a;double b;a=max1(1,2);cout<

      Lab3_3: #include using namespace std;int max1(int a,int b){ a=a>b?a:b;return a;} int max1(int a,int b,int c){ a=a>b?a:b;a=a>c?a:c;return a;}

      int main(){ int i,j,k;cout<<“請(qǐng)輸入要比較的3個(gè)數(shù):

      ”<

      2131415

      public: Rank rank;int frequency;float voltage;CPU(Rank r,int f,float v){

      //構(gòu)造函數(shù)

      cout<<“構(gòu)造了一個(gè)CPU”<

      rank=r;

      frequency=f;

      voltage=v;} void run(){

      cout<<“CPU開(kāi)始運(yùn)行”<

      } void stop(){

      cout<<“CPU停止運(yùn)行”<

      cout<<“RANK=”<

      cout<<“frequency=”<

      cout<<“voltage=”<

      };

      int main(){ CPU cpu(p5,500,2000);cpu.run();cpu.show();cpu.stop();return 0;}

      Lab4_2 #include using namespace std;enum Rank{p1=1,p2,p3,p4,p5,p6,p7};//CPU類 class CPU{ public:

      //析構(gòu)函數(shù)-17

      computer(Rank r,int f,float v){

      CPU cpu(r,f,v);

      //定義CPU對(duì)象

      RAM ram(1);

      //定義RAM對(duì)象

      CDROM cdrom(1);

      //定義CDROM對(duì)象

      cpu.run();

      cpu.show();

      cpu.stop();} };int main(){ computer com(p4,300,3000);return 0;}

      實(shí)驗(yàn)

      七、繼承與派生(一、二)4學(xué)時(shí)

      1、實(shí)驗(yàn)?zāi)康模?/p>

      學(xué)習(xí)定義和使用類的繼承關(guān)系,定義派生類。熟悉不同繼承方式下對(duì)基類成員的訪問(wèn)控制。學(xué)習(xí)利用虛基類解決二義性問(wèn)題

      2、實(shí)驗(yàn)任務(wù) a)定義一個(gè)基類Animal,有私有整型成員變量age,構(gòu)造其派生類dog,在其成員函數(shù)SetAge(int n)中直接給age賦值,看看會(huì)有什么問(wèn)題,把a(bǔ)ge改為公有成員變量,還會(huì)有問(wèn)題嗎?編程試試看。b)定義一個(gè)基類BaseClass,有整型成員變量Number ,構(gòu)造其派生類DerivedClass,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。c)定義一個(gè)車(vehicle)基類,具有MaxSpeed、Weight等成員變量,Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類。自行車類有高度(height)等屬性,汽車類有座位數(shù)(SeatNum)等屬性。從bicycle和motorcar派生出摩托車(motorcycle)類,在繼承過(guò)程中,注意把vehicle設(shè)置為虛基類。如果不把vehicle設(shè)置為虛基類,會(huì)有什么問(wèn)題?編程試試看。

      3、實(shí)驗(yàn)步驟

      編寫(xiě)程序定義基類Animal,成員變量age定義為私有的。構(gòu)造派生類dog,在其成員函數(shù)SetAge(int n)中直接對(duì)age賦值時(shí),會(huì)出現(xiàn)類似以下的錯(cuò)誤提示:

      error C2248:’age’:cannot access private member declared in class ‘Animal’

      error C2248:’age’:cannot access private member declared in class ‘Animal’

      把a(bǔ)ge改為公有成員變量后重新編譯就可以了。程序名為:lab7_1.cpp

      0

      確方便我們編程。

      6、部分參考代碼

      Lab7_1 #include using namespace std;

      class Animal{

      public: int age;};

      class dog:public Animal{ public: int SetAge(int n){

      age=n;

      return age;} };

      void main(void){ int age;dog d;age=d.SetAge(3);cout<<“age=”<

      Lab7_2 #include using namespace std;class BaseClass{ public: int Number;BaseClass(){

      cout<<“這是父類的構(gòu)造函數(shù)”<

      cout<<“這是父類的析構(gòu)函數(shù)”<

      //Motorcycle繼承bicycle和motorcar類

      class motorcycle:public bicycle,public motorcar{ public: motorcycle(int seat,double H,double MS,double W){

      SeatNum=seat;

      height=H;

      MaxSpeed=MS;

      Weight=W;} void show(){

      cout<<“seatnum=”<

      cout<<“height=”<

      cout<<“MaxSpeed=”<

      cout<<“weight=”<

      int main(){ motorcycle che(3,30.33,90.84,500);che.show();return 0;} 實(shí)驗(yàn)

      八、多態(tài)性2學(xué)時(shí)

      1、實(shí)驗(yàn)?zāi)康模?/p>

      掌握運(yùn)算符重載的方法

      習(xí)使用虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性。

      2、實(shí)驗(yàn)任務(wù)

      a)定義Point類,有坐標(biāo)x,y兩個(gè)成員變量;對(duì)Point類重載“++”、“--”運(yùn)算符,實(shí)現(xiàn)對(duì)坐標(biāo)值的改變。

      定義一個(gè)車(vehicle)基類,有Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類,從bicycle和motorcar派生出摩托車(motorcycle)類,它們都有Run、Stop等成員函數(shù)。觀察虛函的作用。

      3、實(shí)驗(yàn)步驟

      編寫(xiě)程序定義Point類,在類中定義整型的私有成員變量x,y,定義成員函數(shù)Point& operator++();Point operator++(int);以實(shí)現(xiàn)對(duì)Point類重載“++”運(yùn)算符,定義成函數(shù)Point& operator –();Point operator

      也就是函數(shù)的重載。

      6、部分參考代碼

      Lab8_1 #include using namespace std;

      class Point{ public: Point(double x=0.0,double y=0.0):xray(x),yray(y){} Point operator++(int);Point operator--(int);void show();private: double xray;double yray;};

      Point Point::operator++(int){ return Point(xray++,yray++);}

      Point Point::operator--(int){ return Point(xray--,yray--);}

      void Point::show(){ cout<<“x坐標(biāo)為”<

      int main(){ Point p(4.5,6.5);cout<<“進(jìn)行運(yùn)算前的情況:”<

      show(&v);return 0;}

      第四篇:c++學(xué)習(xí)方法

      學(xué)習(xí)C++應(yīng)該看的書(shū)

      初級(jí):語(yǔ)法/語(yǔ)意(C++)

      《Essential C++ 中文版》,侯俊杰 譯,282頁(yè)

      《C++大學(xué)教程(第二版)》,邱仲潘等 譯,816頁(yè)

      《C++ Primer 中文版》,侯俊杰 譯,《標(biāo)準(zhǔn)C++寶典》,林麗閩等 譯,766頁(yè)

      《C++ 編程思想》,劉宗田等 譯,420頁(yè)

      中級(jí):

      《More Effective C++中文版》,侯俊杰,培生 2000.318頁(yè)

      《Effective C++ 2/e 中文版》,侯俊杰,培生 2000.256頁(yè)

      《Exceptional C++中文版》,侯俊杰,培生 2000.248頁(yè)

      高級(jí):

      《windows 程序設(shè)計(jì) 》

      《深入淺出MFC》

      《深度探索C++物件模型》,侯俊杰 譯

      《設(shè)計(jì)模式》,李英軍等譯,機(jī)械工業(yè)出版社,2000.254頁(yè)

      《重構(gòu)-改善既有代碼的設(shè)計(jì)》

      學(xué)好一門(mén)語(yǔ)言任重而道遠(yuǎn)

      下面是一些建議,希望你能對(duì)c++有一定的了解和認(rèn)識(shí)。

      如何認(rèn)識(shí)c++?

      對(duì)這個(gè)問(wèn)題會(huì)感到困惑的,也只有那些剛踏入編程大門(mén)的初學(xué)者。因?yàn)閷?duì)于很多工作多年的老年而言,看到這個(gè)問(wèn)題也只會(huì)會(huì)心一笑。對(duì)于他們而言,無(wú)所謂存在是否要學(xué)C++的問(wèn)題。他們所處的環(huán)境,所做的業(yè)務(wù),已經(jīng)決定了他們只能使用何種語(yǔ)言。更進(jìn)一步,那些得道的大俠,語(yǔ)言只不過(guò)是他們的工具,信手拈來(lái),他們心中已經(jīng)沒(méi)有語(yǔ)言,他就是語(yǔ)言,語(yǔ)言就是他,合而為一,乃為共同體。

      開(kāi)篇之前,先略微聲明一下。本文目的不在于為C++辯護(hù)或抬舉,當(dāng)然也不會(huì)有為此而抬高或打壓別的編程語(yǔ)言的意圖。所有的,僅僅是有感而發(fā),并且還是從我個(gè)人的角度,有所缺失在所難免。如果你是老鳥(niǎo),其中之缺還望相見(jiàn)一笑;如果你是菜鳥(niǎo),對(duì)于文中的贊美和批評(píng),請(qǐng)擦亮眼睛,別被我忽悠了。

      首先我們先要知道一點(diǎn),C++是一門(mén)什么語(yǔ)言?簡(jiǎn)單點(diǎn)來(lái)說(shuō),C++是一門(mén)接近于全能的語(yǔ)言。為什么說(shuō)是接近呢?因?yàn)镃++有一門(mén)語(yǔ)言是無(wú)法取代的,那

      就是匯編。再直白點(diǎn)來(lái)說(shuō),匯編對(duì)于寄存器的操作,C++是無(wú)法勝任的。不信?你試試用C++來(lái)改寫(xiě)一下PC寄存器看看?沒(méi)轍吧?

      “接近”可以理解了,那么“全能”呢?我們知道,C++是兼容C的。不嚴(yán)謹(jǐn)?shù)卣f(shuō),我們可以簡(jiǎn)單認(rèn)為C只是C++的一個(gè)子集,所以C能做的,C++也能做,這個(gè)應(yīng)該沒(méi)有人有異議。為了方便,以下所描述的C++,在某些方面也代表C,之所以沒(méi)采用C/C++這樣的寫(xiě)法,僅僅是為了保護(hù)鍵盤(pán)而已。轉(zhuǎn)回正題,那C#呢?JAVA呢?它們所能做的,比如網(wǎng)絡(luò)方面的應(yīng)用,B/S的方方面面,怎么就沒(méi)見(jiàn)C++的身影呢?關(guān)于這個(gè)問(wèn)題嘛,我們從另一個(gè)角度來(lái)看,C#和JAVA的運(yùn)行基礎(chǔ)是什么?沒(méi)錯(cuò),是虛擬機(jī)。虛擬機(jī)是用什么寫(xiě)的?嘿嘿,C++。所以,你完全可以用C++先寫(xiě)一個(gè)虛擬機(jī),然后再在虛擬機(jī)上解釋C++語(yǔ)法。是不是很酷?當(dāng)然,我想現(xiàn)實(shí)中是不會(huì)有人那么去做的。就像從深圳到上海,你可以坐飛機(jī)去,也可以騎自行車去。兩者都能到達(dá)目的地,但我估計(jì)沒(méi)幾個(gè)人會(huì)選擇后者。這就是效率問(wèn)題。坐飛機(jī),眼一睜一閉,就到了;騎自行車?呃,這時(shí)間就不好估計(jì)了。所以這領(lǐng)域,該讓C#的,或是JAVA的,就讓它們?nèi)フ垓v吧。至于C++,就讓它干在一旁瞪眼好了,除非你一定想要耍耍酷。

      接著,我們就來(lái)看看桌面應(yīng)用吧。所謂的桌面應(yīng)用,我們狹義一點(diǎn),就是桌面應(yīng)用程序??偟膩?lái)說(shuō),目前在這領(lǐng)域,C++確實(shí)還能占有一席之地。但這僅有的一席之地,也岌岌可危。在XP之前,因?yàn)橄到y(tǒng)都是沒(méi)有預(yù)裝.net framework,所以C++的對(duì)手無(wú)非就是VB和DELPHI,但這兩者根本無(wú)法撼動(dòng)C++這顆大樹(shù)。雖然XP也能裝.net framework,但為了一個(gè)應(yīng)用而弄一個(gè)體積如此巨大的玩意,卻有那么一點(diǎn)點(diǎn)的不現(xiàn)實(shí)。但后XP時(shí)代,世界就不一樣了。Vista已經(jīng)預(yù)裝了.net framework,更不用說(shuō)Windows 7。甚至還有傳言,Windows 7的用戶界面就是用C#搞定的。何況,C#還有殺手锏,能和Silverlight完美結(jié)合,大大減輕UI的開(kāi)發(fā)難度??雌饋?lái),在今后的日子,在這個(gè)桌面應(yīng)用領(lǐng)域,C++日子過(guò)得并不舒坦。在這領(lǐng)域,可能C++還能耀武揚(yáng)威的,也許就剩下大型的3D游戲了。雖然用.net配合OpenGL或Direct3D也能做C++的事,但效率卻會(huì)大打折扣。雖然隨著硬件的不斷提升,可能這折扣會(huì)不斷縮小,但畢竟還是存在的。只要折扣存在,那些游戲廠商就不會(huì)放棄C++,因?yàn)槟軆?yōu)化,為何不優(yōu)化?但,也許也僅僅限于此了。C++,它淚流滿面。

      最后呢,就是嵌入式領(lǐng)域。在這里,是C++的天下,C++是永遠(yuǎn)的王者。它不是一個(gè)人在戰(zhàn)斗!此刻,它靈魂附體!你見(jiàn)過(guò)那些RTOS是用C++以外的語(yǔ)言寫(xiě)的(再次重申,正如前文所說(shuō),這里的C++也代表了C)?至少我印象中沒(méi)有。嵌入式linux支持.net?除非微軟的腦袋秀逗了。也許有人說(shuō),WinCE不是可以支持.net么?支持是可以支持,但并不代表所有的WinCE設(shè)備都支持。因?yàn)閃inCE是可裁剪的操作系統(tǒng),也許是為了節(jié)約內(nèi)存空間,也許是為了啟動(dòng)速度,或是由于別的雜七雜八的,甚至莫名其妙的理由,很多廠商根本就不會(huì)將.net這個(gè)會(huì)將系統(tǒng)膨脹至少4M的組件加到產(chǎn)品去??纯碬inCE的內(nèi)核代碼,看看WinCE的BSP包,哪里有.net代碼的身影?全部清一色的C++。甚至于WinCE的應(yīng)用程序,微軟的態(tài)度也非常明確,在桌面只能.net使用的Silverlight,在WinCE SP3添加之后,卻是更改為了C++接口。王者,絕對(duì)的王者,根本就不可能有別的語(yǔ)言在這里將C++撼動(dòng)!此時(shí),C++站起來(lái)了!腰板直了!

      說(shuō)了那么多,那么我們的最后,就來(lái)看看為什么大家都說(shuō)學(xué)好C++難吧。如果你對(duì)學(xué)好C++沒(méi)啥興趣,以下的文字估計(jì)對(duì)你也沒(méi)啥營(yíng)養(yǎng),你可以完全忽略不計(jì),可以很愉快或很氣憤地將當(dāng)前網(wǎng)頁(yè)給咔嚓掉。

      其實(shí)學(xué)C++很簡(jiǎn)單,但難就難在這個(gè)“好”字。初學(xué)者會(huì)發(fā)現(xiàn),入門(mén)很簡(jiǎn)單,因?yàn)镃++也沒(méi)啥語(yǔ)法;但搞清楚語(yǔ)法后,接下來(lái)就犯糊涂了,下一步應(yīng)該怎么走呢?只所以產(chǎn)生這種原因,是因?yàn)镃++太靈活了。對(duì)于一種功能,C++有各種各樣的方法,究竟什么方法才是最合適的?比如說(shuō),傳遞給函數(shù)的形參,什么時(shí)候該使用指針,什么時(shí)候該使用引用?就連平常得再也不能平常的指針轉(zhuǎn)型,有C的括號(hào)形式,還有C++特有的dynamic_cast和reinterpret_cast,究竟哪個(gè)才是該使用的?更不用說(shuō)分配內(nèi)存了,既有malloc,還有new,如果算上STL的話,還有一個(gè)resize。我想所有的這些,對(duì)于初學(xué)者而言,如果他看著這些能夠腿不痛腰不酸,那么我強(qiáng)烈佩服這人的淡定力。

      C++還有更讓初學(xué)者郁悶的是,即使不用STL,不用類,不用虛擬繼承,甚至不用C++的一切特性,也是能夠完成所相應(yīng)的功能。所以,疑惑了,C++是什么?也許這時(shí)候,很多人就會(huì)想,如果選擇是唯一的,那是多么地幸福啊!因此,很多人就轉(zhuǎn)向了C#(或別的語(yǔ)言),因?yàn)閷?duì)于某些操作,方法是唯一的;即使不是唯一,也沒(méi)有C++那么繁多。

      沒(méi)打算在這論述該如何學(xué)習(xí)C++,因?yàn)橐磺€(gè)人有一千種方法,而這一千種方法,還不一定適合你。但有一點(diǎn)是共通的,那就是多看書(shū)。將市面上經(jīng)典的C++著作,仔仔細(xì)細(xì)地消化,相信一定能達(dá)到爐火純青的地步。即使達(dá)不到吧,也沒(méi)事,不會(huì)作詩(shī)也會(huì)呤吧?只是,這時(shí)候意志力就非常重要,當(dāng)然也需要那么一點(diǎn)點(diǎn)情商,要相信沒(méi)有邁不過(guò)的坎。

      最后的最后,以一句來(lái)結(jié)尾:C++有風(fēng)險(xiǎn),入行需謹(jǐn)慎。

      第五篇:什么是c++(本站推薦)

      什么是c++?

      C++

      C++這個(gè)詞在中國(guó)大陸的程序員圈子中通常被讀做“C加加”,而西方的程序員通常讀做“C plus plus”,“CPP”。它是一種使用非常廣泛的計(jì)算機(jī)編程語(yǔ)言。C++是一種靜態(tài)數(shù)據(jù)類型檢查的,支持多重編程范式的通用程序設(shè)計(jì)語(yǔ)言。它支持過(guò)程化程序設(shè)計(jì)、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計(jì)、制作圖標(biāo)等等泛型程序設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格。

      C++發(fā)展歷史簡(jiǎn)單介紹

      C語(yǔ)言之所以要起名為“C”,是因?yàn)樗侵饕獏⒖寄莻€(gè)時(shí)候的一門(mén)叫B的語(yǔ)言,它的設(shè)計(jì)者認(rèn)為C語(yǔ)言是B語(yǔ)言的進(jìn)步,所以就起名為C語(yǔ)言;但是B語(yǔ)言并不是因?yàn)橹斑€有個(gè)A語(yǔ)言,而是B語(yǔ)言的作者為了紀(jì)念他的妻子,他的妻子名字的第一個(gè)字母是B; 當(dāng)C語(yǔ)言發(fā)展到頂峰的時(shí)刻,出現(xiàn)了一個(gè)版本叫C with Class,那就是C++最早的版本,在C語(yǔ)言中增加class關(guān)鍵字和類,那個(gè)時(shí)候有很多版本的C都希望在C語(yǔ)言中增加類的概念;后來(lái)C標(biāo)準(zhǔn)委員會(huì)決定為這個(gè)版本的C起個(gè)新的名字,那個(gè)時(shí)候征集了很多種名字,最后采納了其中一個(gè)人的意見(jiàn),以C語(yǔ)言中的++運(yùn)算符來(lái)體現(xiàn)它是C語(yǔ)言的進(jìn)步,故而叫C++,成立了C++標(biāo)準(zhǔn)委員會(huì)。

      美國(guó)AT&T貝爾實(shí)驗(yàn)室的本賈尼·斯特勞斯特盧普(Bjarne Stroustrup)博士在20世紀(jì)80年代初期發(fā)明并實(shí)現(xiàn)了C++(最初這種語(yǔ)言被稱作“C with Classes”)。一開(kāi)始C++是作為C語(yǔ)言的增強(qiáng)版出現(xiàn)的,從給C語(yǔ)言增加類開(kāi)始,不斷的增加新特性。虛函數(shù)(virtual function)、運(yùn)算符重載(operator overloading)、多重繼承(multiple inheritance)、模板(template)、異常(exception)、RTTI、命名空間(name space)逐漸被加入標(biāo)準(zhǔn)。1998年國(guó)際標(biāo)準(zhǔn)組織(ISO)頒布了C++程序設(shè)計(jì)語(yǔ)言的國(guó)際標(biāo)準(zhǔn)ISO/IEC 1488-1998。C++是具有國(guó)際標(biāo)準(zhǔn)的編程語(yǔ)言,通常稱作ANSI/ISO C++。1998年是C++標(biāo)準(zhǔn)委員會(huì)成立的第一年,以后每5年視實(shí)際需要更新一次標(biāo)準(zhǔn),下一次標(biāo)準(zhǔn)更新原定是在2009年,目前我們一般稱該標(biāo)準(zhǔn)C++0x,但是由于對(duì)于新特性的爭(zhēng)端激烈,除了在Technical Report 1(tr1)中的新增修改被基本確定外,完整的標(biāo)準(zhǔn)還遙遙無(wú)期。況且遺憾的是,由于C++語(yǔ)言過(guò)于復(fù)雜,以及經(jīng)歷了長(zhǎng)年的演變,直到現(xiàn)在(2010年)都沒(méi)有有一個(gè)編譯器完全符合這個(gè)標(biāo)準(zhǔn)。

      目前最符合和接近C++標(biāo)準(zhǔn)的編譯器有為 GNU GCC 4.5.0 和 Visual Studio 2010 等。

      另外,就目前學(xué)習(xí)C++而言,可以認(rèn)為他是一門(mén)獨(dú)立的語(yǔ)言;他并不依賴C語(yǔ)言,我們可以完全不學(xué)C語(yǔ)言,而直接學(xué)習(xí)C++。根據(jù)《C++編程思想》(Thinking in C++)一書(shū)所評(píng)述的,C++與C的效率往往相差在正負(fù)5%之間。所以有人認(rèn)為在大多數(shù)場(chǎng)合C++ 完全可以取代C語(yǔ)言(然而我們?cè)趩纹瑱C(jī)等需要謹(jǐn)慎利用空間、直接操作硬件的地方還是要使用C語(yǔ)言)。

      子語(yǔ)言

      根據(jù)Effective C++第三版第一條款的描述,現(xiàn)在C++由以下四個(gè)“子語(yǔ)言”組成:

      下載C++常用填空題word格式文檔
      下載C++常用填空題.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        c++作業(yè)

        P179 5.9.2(11) 1. 意圖 保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)。 2. 動(dòng)機(jī) 對(duì)一些類來(lái)說(shuō),只有一個(gè)實(shí)例是很重要的。雖然系統(tǒng)中可以有許多打印機(jī),但卻只應(yīng)該有一......

        c++學(xué)習(xí)心得

        c++學(xué)習(xí)心得 2008-03-12 16:24 為初學(xué)者指路 首先聲明,我可不是什么高手,也就是剛脫貧。因?yàn)檫\(yùn)氣很好,買到了幾本好書(shū),在學(xué)習(xí)過(guò)程中幾乎沒(méi)走什么彎路,沒(méi)費(fèi)什么勁就入門(mén)了,現(xiàn)在一般......

        C++學(xué)習(xí)心得

        C++學(xué)習(xí)心得 在計(jì)算機(jī)課程中,C++程序設(shè)計(jì)是計(jì)算機(jī)專業(yè)的一門(mén)必修基礎(chǔ)課,該語(yǔ)言以其高效而又實(shí)用的特性:既可以進(jìn)行過(guò)程化程序設(shè)計(jì),又可進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計(jì),是進(jìn)行軟件開(kāi)發(fā)的......

        C++心得體會(huì)

        C++學(xué)習(xí)心得體會(huì) 通過(guò)一學(xué)期對(duì)C++的學(xué)習(xí),我感覺(jué)學(xué)習(xí)C++是有一定難度卻又是非常有趣 的科目。也是很有幫助的。 深刻感受到如果真的想要學(xué)好這么課,或者說(shuō)是從這門(mén)課學(xué)到點(diǎn)......

        C++題

        1、_____重載 ___不是面向?qū)ο笙到y(tǒng)所包含的要素。 2、___構(gòu)造函數(shù)_____的功能是對(duì)對(duì)象進(jìn)行初始化。 3、在下列關(guān)鍵字中,用以說(shuō)明類中私有成員的是_private___。 4、C++對(duì)C語(yǔ)言作......

        C++ 心得

        2010.10.13 今天在學(xué)習(xí)用windows自帶的dos命令提示符窗口的命令: 列文件名dir,創(chuàng)建文件夾md(其他文件不能通過(guò)該命令創(chuàng)建,即使用了該類文件的后綴名,也只是將該名稱和后綴名一塊......

        填空題

        一、填空題 1.為維護(hù)黨的章程和其他黨內(nèi)法規(guī),嚴(yán)肅黨的紀(jì)律,純潔黨的組織,保障黨員民主權(quán)利,教育黨員遵紀(jì)守法,維護(hù)黨的團(tuán)結(jié)統(tǒng)一,保證黨的路線、方針、政策、決議和國(guó)家法律法規(guī)的......

        填空題

        填 空 (B)罷免是任命代表大會(huì)實(shí)施一種嚴(yán)厲的監(jiān)督方法也是保證國(guó)家機(jī)關(guān)工作人員忠于職守防止(濫用職權(quán))和滋生官僚主義的一種有效方法。 (D)對(duì)我國(guó)家(公權(quán)力)監(jiān)督的必要性遠(yuǎn)遠(yuǎn)超......