<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C++ 初步

      c++新特性:

      1. 初始化方法:

        復制初始化 int x=1024;

        直接初始化 int x (1024);

      2.變量隨用隨定義

      3.增加bool數(shù)據(jù)類型

       

      輸入輸出:

        cout<<x;

        cin>>x>>y;

        cout<<oct<<x<<endl;    //oct為8進制,dec為十進制,hex為16進制

        cout<<boolalpha<<y<<endl;    //輸出布爾型數(shù)據(jù)

       

      命名空間:

        namespace A

      {

          int x=0;

          void f1();

          void f2();

      }

      A::x       A::f1()

       

      引用:變量的別名

      int a=3;

      int &b=a;   引用必須初始化

      b=10;

      結構體類型的引用:

      typedef struct

      {

        int x;

        int y;

      }Coor;

      Coor c1;

      Coor &c=c1;

      c.x;

       

      指針類型的引用:

      類型 *&指針引用名=指針;

      int a=10;

      int *p=&a;

      int *&q=p;

      *q=20;      //a=20;

       

      引用做函數(shù)參數(shù):

      void fun(int &a,int &b)

      {

      int c=0;

      c=a;

      a=b;

      b=c;

      }

      int x=10,y=20;

      fun(x,y);

       

      const:

       

      函數(shù)參數(shù)默認值:函數(shù)括號內最右端的變量必須有默認值 ,無實參用默認值,否則覆蓋。

      函數(shù)重載:在相同作用域下,有同名函數(shù),參數(shù)個數(shù)和類型不同。

      內聯(lián)函數(shù):  編譯時將函數(shù)體內代碼和實參代替函數(shù)調用語句。效率高,有條件

              關鍵字:inline 

      內存管理: 

               申請:new       int *p=new int;          釋放:delete p;

               塊內存: int *arr=new int[10];    delete []arr;

               注意事項:c語言:*malloc(),free()。

                          if(NULL==p){   //  申請失敗   }   delete p;  p=NULL;

       

      類:

                對象實例化:

                             1.從棧實例化對象:class TV{ .... }     TV  tv;   TV tv[20];

                             2.從堆實例化: TV *p =new TV();       delete p;

                 對象成員的訪問:

                              1. 棧: tv.type=0;   tv.func();

                               2.堆:    p->tyoe=0;  p->func();   delete p; p=NULL;

       

      數(shù)據(jù)類型:

                 1.string:

                            #include<string>  

                            初始化:string s1;   s1為空串

                                             string s2("ABC");

                                             string s3(s2);   將s3初始化為s2的一個副本

                                             string s4(n,'c');   將s4初始化為字符‘c’的n個副本

                            常用操作: s.empty(),  s.size() , s[n],  = ,  + , ==  ,  !=

                           

      數(shù)據(jù)封裝:                      

      #include<stdlib.h>
      #include<iostream>
      #include<string>
      using namespace std;
      
      class Student
      {
      public:
          void setName(string _name)
          {
              m_strName=_name;
          }
          string getName()
          {
              return m_strName;
          }
          void setGender(string _gender)
          {
              m_strGender=_gender;
          }
          string getGender()
          {
              return m_strGender;
          }
          int getScore()
          {
              return m_iScore;
          }
          void initScore()
          {
              m_iScore=0;
          }
          void study(int _score)
          {
              m_iScore+=_score;
          }
      private:
          string m_strName;
          string m_strGender;
          int m_iScore;
      };
      
      
      int main(void)
      {
          Student stu;
          stu.initScore();
          stu.setName("hhhh");
          stu.setGender("F");
          stu.study(5);
          stu.study(3);
      
          cout<<stu.getName()<<" "<<stu.getGender()<<" "<<stu.getScore()<<endl;
      
          return 0;
      }
      View Code

       

      內聯(lián)函數(shù):inline

      類內定義:類內定義的函數(shù)會優(yōu)先轉換為內聯(lián)函數(shù)

      類外定義:1.同文件類外定義               

      #include<stdlib.h>
      #include<iostream>
      #include<string>
      using namespace std;
      
      class Teacher
      {
      public:
          void setName(string _name);
          string getName();
          void setGender(string _gender);
          string getGender();
          void setAge(int _age);
          int getAge();
          void teach();
      private:
          string m_strName;
          string m_strGender;
          int m_iAge;
      };
      
      void Teacher::setName(string _name){
          m_strName=_name;
      }
      string Teacher::getName()
      {
          return m_strName;
      }
      void Teacher::setGender(string _gender){
          m_strGender=_gender;
      }
      string Teacher::getGender(){
          return m_strGender;
      }
      void Teacher::setAge(int _age){
          m_iAge=_age;
      }
      int Teacher::getAge(){
          return m_iAge;
      }
      void Teacher::teach(){
          cout<<"teaching!...."<<endl;
      }
      
      
      int main(void)
      {
          Teacher t;
          t.setName("Kongzi");
          t.setGender("M");
          t.setAge(70);
          cout<<t.getName()<<" "<<t.getGender()<<" "<<t.getAge()<<endl;
          t.teach();
          return 0;
      }
      View Code  

                         2.分文件類外定義 

      //teacher.h
      
      /*
       * teacher.h
      
       *
       *  Created on: 2017年7月12日
       *      Author: rmbp
       */
      #include <string>
      using namespace std;
      
      class Teacher
      {
      public:
          void setName(string _name);
          string getName();
          void setGender(string _gender);
          string getGender();
          void setAge(int _age);
          int getAge();
          void teach();
      private:
          string m_strName;
          string m_strGender;
          int m_iAge;
      };
      
      
      //teacher.cpp
      /*
       * teacher.cpp
       *
       *  Created on: 2017年7月12日
       *      Author: rmbp
       */
      #include "teacher.h"
      #include<iostream>
      using namespace std;
      
      void Teacher::setName(string _name){
          m_strName=_name;
      }
      string Teacher::getName()
      {
          return m_strName;
      }
      void Teacher::setGender(string _gender){
          m_strGender=_gender;
      }
      string Teacher::getGender(){
          return m_strGender;
      }
      void Teacher::setAge(int _age){
          m_iAge=_age;
      }
      int Teacher::getAge(){
          return m_iAge;
      }
      void Teacher::teach(){
          cout<<"teaching!...."<<endl;
      }
      
      
      //hello.cpp
      #include<stdlib.h>
      #include<iostream>
      #include<string>
      
      #include "teacher.h"
      using namespace std;
      
      int main(void)
      {
          Teacher t;
          t.setName("Kongzi");
          t.setGender("M");
          t.setAge(70);
          cout<<t.getName()<<" "<<t.getGender()<<" "<<t.getAge()<<endl;
          t.teach();
          return 0;
      }
      View Code

       

      內存分區(qū):

        棧區(qū):系統(tǒng)控制

        堆區(qū):程序員控制                

        全局區(qū):存儲全局變量和靜態(tài)變量

        常量區(qū):字符串,常量

        代碼區(qū):存儲邏輯代碼的的二進制

       

      構造函數(shù):在對象實例化時被自動調用,與類名同名,沒有返回值,可以重載,只用到一個構造函數(shù),用戶沒有創(chuàng)建時系統(tǒng)自動創(chuàng)建。

      //teacher.h
      #include <string>
      using namespace std;
      
      class Teacher
      {
      public:
          Teacher();
          Teacher(string name,int age);  //可以初始化參數(shù)值
      
          void setName(string _name);
          string getName();
          void setAge(int _age);
          int getAge();
      private:
          string m_strName;
          string m_strGender;
          int m_iAge;
      };
      
      
      //teacher.cpp
      
      #include "teacher.h"
      #include<iostream>
      using namespace std;
      
      Teacher::Teacher()
      {
          m_strNme="JIM";
          m_iAge=7;
          cout<<"Teacher()"<<endl;
      }
      Teacher::Teacher(string name,int age){
          m_strNme=name;
          m_iAge=age;
          cout<<"Teacher(string name,int age)"<<endl;
      }
      
      void Teacher::setName(string _name){
          m_strName=_name;
      }
      string Teacher::getName()
      {
          return m_strName;
      }
      void Teacher::setAge(int _age){
          m_iAge=_age;
      }
      int Teacher::getAge(){
          return m_iAge;
      }
      
      
      //hello.cpp
      #include<stdlib.h>
      #include<iostream>
      #include<string>
      
      #include "teacher.h"
      using namespace std;
      
      int main(void)
      {
          Teacher t1;
          Teacher t2("Merry",16);
      
          cout<<t1.getName()<<" "<<t1.getAge()<<endl;
          cout<<t2.getName()<<" "<<t2.getAge()<<endl;
        
          return 0;
      }
      View Code

      默認構造函數(shù):在對象實例化時不需要傳遞參數(shù)

      構造函數(shù)初始化列表:先于構造函數(shù)執(zhí)行,只能用于構造函數(shù),可以同時初始化多個數(shù)據(jù)

      class Student
      {
      public:
          Student():m_strName("JIM"),m_iAge(10){}
      private: 
          string m_strName;
          int m_iAge;
      };

      必要性:

      class Circle
      {
      public:
          Circle():m_dPi(3.14){} //不能用構造函數(shù),const
      private:
          const double m_dPi;
      }
      //teacher.h
      #include <string>
      using namespace std;
      
      class Teacher
      {
      public:
          Teacher(string name="JIM",int age=1,int m=100);  
      
          void setName(string _name);
          string getName();
          void setAge(int _age);
          int getAge();
          int getMax();
      private:
          string m_strName;
          int m_iAge;
          const int m_iMax;
      };
      
      
      //teacher.cpp
      
      #include "teacher.h"
      #include<iostream>
      using namespace std;
      
      Teacher::Teacher(string name,int age,int m):m_strName(name),m_iAge(age),m_iMax(m)
      {
          cout<<"Teacher(string name,int age)"<<endl;
      }
      
      void Teacher::setName(string _name){
          m_strName=_name;
      }
      string Teacher::getName()
      {
          return m_strName;
      }
      void Teacher::setAge(int _age){
          m_iAge=_age;
      }
      int Teacher::getAge(){
          return m_iAge;
      }
      int Teacher::getMax(){
          return m_iMax;
      }
      
      
      //hello.cpp
      #include<stdlib.h>
      #include<iostream>
      #include<string>
      
      #include "teacher.h"
      using namespace std;
      
      int main(void)
      {
          Teacher t1("merry",12);
      
          cout<<t1.getName()<<" "<<t1.getAge()<<" "<<t1.getMax()<<endl;
        
          return 0;
      }
      View Code

       

      拷貝構造函數(shù): 類名(const 類名& 變量名)

                       1.當沒有自定義拷貝構造函數(shù)則系統(tǒng)系統(tǒng)自動生成一個默認的拷貝構造函數(shù)。

                       2.當采用直接初始化或復制初始化實例化對象時系統(tǒng)自動調用拷貝構造函數(shù)。

                       無參構造函數(shù),有參構造函數(shù)(參數(shù)帶默認值)--》默認構造函數(shù)

                       系統(tǒng)自動生成普通構造函數(shù)和拷貝構造函數(shù)。不能重載。

      //teacher.h
      
      Teacher(const Teacher& tea);
      //....
      
      //teacher.cpp
      teacher::Teacher(const Teacher &tea){
          cout<<"Teacher(const Teacher &tea)"<<endl;
      }
      
      //hello.cpp
      int main(void)
      {
          Teacher t1;
          Teacher t2=t1;
          Teacher t3(t1);
      
      //....
      }
      //hello.cpp
      
      void test(Teacher t)
      {
      }
      
      int main(void)
      {
           Teacher t1;   //構造函數(shù)
           test(t1);  //拷貝構造函數(shù)
      
      //....
      }

       

      析構函數(shù):~類名(),不允許加任何參數(shù),系統(tǒng)自動產生,在對象銷毀時自動調用。沒有返回值,沒有參數(shù)不能重載

       

      //teacher.h
      
      /*
       * teacher.h
      
       *
       *  Created on: 2017年7月12日
       *      Author: rmbp
       */
      #include <string>
      using namespace std;
      
      class Teacher
      {
      public:
          Teacher(string name="JIM",int age=1);  //構造
          Teacher(const Teacher &tea);  //拷貝構造
          ~Teacher();   //析構函數(shù)
          void setName(string _name);
          string getName();
          void setAge(int _age);
          int getAge();
      private:
          string m_strName;
          int m_iAge;
      };
      
      
      //teacher.cpp
      
      #include "teacher.h"
      #include<iostream>
      using namespace std;
      
      Teacher::Teacher(string name,int age):m_strName(name),m_iAge(age)
      {
          cout<<"Teacher(string name,int age)"<<endl;
      }
      Teacher::Teacher(const Teacher &tea)
      {
          cout<<"Teacher(const Teacher &tea)"<<endl;
      }
      Teacher:~Teacher()
      {
          cout<<"~Teacher()"<<endl;
      }
      void Teacher::setName(string _name){
          m_strName=_name;
      }
      string Teacher::getName()
      {
          return m_strName;
      }
      void Teacher::setAge(int _age){
          m_iAge=_age;
      }
      int Teacher::getAge(){
          return m_iAge;
      }
      
      
      //hello.cpp
      #include<stdlib.h>
      #include<iostream>
      #include<string>
      
      #include "teacher.h"
      using namespace std;
      
      int main(void)
      {
          Teacher t1;
          //Teacher *p=new Teacher();
          //delete p;
      
          Teacher t2(t1);  
          return 0;
      }
      View Code

       

            

       

      posted @ 2017-07-11 00:42  淡淡723  閱讀(127)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 午夜一区欧美二区高清三区| 少妇被粗大的猛烈进出69影院一| 国产精品免费第一区二区| 亚洲人成电影在线天堂色| 成在线人免费| 亚洲一区二区三区蜜桃臀| 日本不卡的一区二区三区| 亚洲中文字幕人妻系列| 亚洲顶级裸体av片| 亚洲人成色99999在线观看| 亚洲国产精品一区二区久久| 天堂va蜜桃一区二区三区| 国产成人综合网亚洲第一| 国产无遮挡又黄又爽又色| 亚洲中文字幕一区二区| 欧美丰满熟妇xxxx性| 蜜桃视频无码区在线观看| av无码一区二区大桥久未| 粗壮挺进人妻水蜜桃成熟| 国产精品福利中文字幕| 国产成人欧美一区二区三区在线| 野外做受三级视频| 国产精品熟女亚洲av麻豆| 国产精品亚洲精品日韩已满十八小| 少妇激情一区二区三区视频小说| 日韩a无v码在线播放| 亚洲日本韩国欧美云霸高清| 人与禽交av在线播放| 精品亚洲国产成人av制服| 日本一区不卡高清更新二区| 久久综合色一综合色88欧美| 国产va免费精品观看精品| 亚洲av午夜福利精品一区二区| 亚洲夜夜欢一区二区三区| 欧美性xxxxx极品少妇| 人妻精品久久无码专区涩涩| 国产精品中文av专线| 里番全彩爆乳女教师| 国产不卡精品视频男人的天堂| 亚洲国产高清av网站| 无码人妻一区二区三区免费N鬼沢|