美文网首页
博覽網:第一週筆記

博覽網:第一週筆記

作者: 夜鶯 | 来源:发表于2017-10-22 12:30 被阅读0次

    仅个人学习记录,毫无参考性  望知悉!!!

    零:c++書籍目錄

    《the C++ programming language》

    《C++ Primer》                            工具書

    《Effective C++ 》

    《The C++ standard library》

    《STL源码剖析》                       

    壹:c++的特點與c的區別

    c++分為  “c++語言語法”  和  “c++標準庫”    兩部分

    區別:c語言:c語言創建的數據由於語法問題,是全局的,導致所有函數(大部分函數)都可以處理,不安全

                c++:c++將 數據 和  處理這些數據 函數 包含在一起(通過 class),通過class為類型,創建objects(對象)處理,封裝                                                                                                                                                                        注:class與struct(結構)類似,不過更好

    class:分類  1.不帶指針  object based:面對單一的class的設計.數據部分创建对象后  相关数据部分即完成数据空间分配

                            2.帶指針      object oriented:面對多重classes的設計,classes和classes之間的關係  string .數據部分,需要另外分配空間,類 中(class)存放的僅僅是指針

    貳:c++程序 

                頭文件.h(通過#include".h"引入)    + 主程序.cpp  +  標準庫.h(通過#include<.h>引入)                                                                                                                注:延伸文件名不一定是.h或.cpp

      c与 c++的输出及头文件差异:

                c語言

                    1.頭文件stdio.h

                      2.printf  输出时需要指定变量类型

                  c++

                      1.頭文件iostream(標準輸入輸出),用c的頭文件需要在前面加c(cstdio.h)                                                                                                                                    注:可以不含.h

                      2.cout  基本类型都可直接输出无需指定类型

      叁:.h頭文件

      c++class(類)头文件防卫式声明

                        #ifndef  __COMPLEX__

                        #define __COMPLEX__

                          {

                                  ......

                          }

                            #endif

                                                                                                                    注:防止 重複#include的操作

    class head(類的頭)    +  class body(類主體)

      class head(class 類的名稱)

    例: class date

          {

              ③  public:

              ①  date (②參數類型=0)

                      :初始化參數

                      {

                              ...

                      }

                ④  返回類型 operator ==(const 參數類型)

                private:

                          int a;

                          friend 函數名

                          ...

                };

    inline bool ⑤date::operator==(const person &ps) const

    {

    if (this->age==ps.age)

    return true;

    return false;

    }

                                                                                                                  注:大括號后加;號

        class body(類的主體)

    類分為public(公開的).private(私有的)和protected(受保護的) 區域

    private區域中存放的

            數據,函數:只能通過成員函數訪問,全局或其他函數無法訪問

            友元聲明:friend 函數名,友元函數可以特殊訪問私有的數據和函數,

                                  相同class的各個對象互為友元

                                                                                                              注:缺點會打破封裝,慎用

    ③public區域存放的

    數據,函數:能被外界訪問

    構造函數:用來創建對象,沒有返回類型,函數名和類名相同,必須用特殊初始化參數的方式

    inline函數(內聯)

    類似宏定義(更好)

    在class內部直接定義的就是inline,在外部定義的可以加 inline,建議inline

                                                                          注:inline由編譯器決定,只有簡單的函數才能inline

    肆④函數

                          返回類型+函數名+(參數)

    返回類型和參數傳遞

    可以傳reference(引用) 或 傳value(值)

    如果函數需要創建臨時變量,則只能傳value(值),不能傳reference(引用)

                                                                          注:一般用傳reference(引用),慎用傳value(值)

    ②參數

    如果函數不打算改變參數值,要加const,可以有默認值

    ⑤成員函數

    聲明或定義在class類里的函數

    調用或定義需加 類名::函數名

    有一個this 的隱含參數,聲明時不能寫出,誰調用成員函數,誰就是this

    全局函數(非成員函數)

    定義在class外部的函數

    伍:操作符重載

    與函數寫法相同,函數名需要operator 加操作符

    相关文章

      网友评论

          本文标题:博覽網:第一週筆記

          本文链接:https://www.haomeiwen.com/subject/dylguxtx.html