亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • http://img1.sycdn.imooc.com//5ef1761f00019c8d04170265.jpg13245

    查看全部
    1 采集 收起 來源:單元鞏固

    2020-06-23

  • 對象各自的this指針指向各自對象的首地址,所以不同對象的this指針一定指向不同的內存地址

    查看全部
    0 采集 收起 來源:練習題

    2020-06-23

  • const 主要的作用?

    固定常數據成員?

    查看全部
  • 定義對象引用時,直接賦值

    定義對象指針時,要取地址

    加了const實際上是改變了權限,只讀權限

    查看全部
  • const 修飾基本類型,同#define

    const修飾對象,通過初始化列表初始化

    const修飾成員函數,隱含參數this,故不能修改數據成員

    同名的有無const修飾的兩個函數,互為重載,但是一般沒必要

    使用常對象調用的是常成員函數

    查看全部
  • 如果想要返回原來的值,而非新值,使用引用&
    查看全部
  • 淺拷貝存在的問題:

    ? ? 當對象的數據成員中包含指針變量時,淺拷貝有可能出現兩個指針指向同一塊內存區域的現象,這會導致對兩個對象的寫操作被覆蓋,甚至可能會出現同一塊內存被釋放兩次的情況,造成系統崩潰。

    查看全部
  • Coordinate * const pCoor = &coor1 : 這種方式定義的常指針“只能指向coor1,但可以調用coor1的不同的函數”;(擁有讀寫權限) const Coordinate *pCoor = &coor1 ?: 只能調用coor1的“常成員函數”。(只擁有讀權限)

    常對象引用與常對象指針?

    const Coordinate& coor2 ; const Coordinate *p; 只具有讀權限,所以只能調用常成員函數。調用成員函數過程其實就是一個隱式的this指針,普通成員函數傳遞的是Coordinate *this指針,而常成員函數傳遞的是常指針const Coordinate *this(只具有讀權限)。 注意,Coordinate * const p,該指針表明指針地址為常量,指針所指向的對象值是可以改變的,也就是說該指針具有讀寫權限


    查看全部
  • 用const修飾對象成員,對象成員就變成了常對象成員 用const修飾成員函數,成員函數就變成了常成員函數。const要放在函數的最后, 一旦初始化就不能再修改,const就是干這個的,長對象成員用初始化列表初始化 函數里看著沒有參數,實際上隱藏著this指針。常成員函數中隱藏的是常this指針,常指針指向的數據不允許被修改 例如:void Coordinate::changeX(){m_iX = 10;}即為void Coordinate::changeX(Coordinate *this){this->m_iX = 10;} void Coordinate::changeX()const{m_iX = 10;}即為void Coordinate::changeX(const Coordinate *this){this->m_iX = 10;}這里的m_iX = 10;的寫法是錯誤的,this已經是常指針,通過常指針是無法修改值的 void changeX();與void changeX() const互為重載 要調用const修飾的常成員函數,實例化對象時,必須用const來修飾對象,const寫在最前面

    查看全部
  • 1、 Array ... return *this 相當于: Array arrX = arr1; arrX是一個新的對象。即返回的this指針為另一個臨時對象 2、 Array& ... return *this 相當于: Array & arrX = arr1; 此時arrX是arr1的別名。 3、 Array* ... return this 相當于: Array* arrX = this; 此時arrX的值 是地址,且是指向arr1的。用->訪問或者*p. 訪問

    查看全部
  • 1.對象成員指針可以在初始化列表中初始化也可以在構造函數中初始化。

    查看全部
    1. 對象指針:類名 * 指針名 ?= new 類名

    2. http://img1.sycdn.imooc.com//5e8aafef000136d413660768.jpg

    查看全部
    0 采集 收起 來源:[C++]對象指針

    2020-04-06

  • 1.對象成員:

    對于復合類來說,子類的構造函數中如果存在參數,那么母類必須通過初始化列表的形式來對母類對象中的子類對象進行賦值。如圖中的坐標系類

    查看全部
  • /****************Array.h*******************/
    class?Array{
    ????public:
    ????????Array(int?len);
    ????????~Array();
    ????????Array*?setLen(int?len);
    ????????int?getLen();
    ????????Array*?printInfo();
    ????private:
    ????????int?len;
    };
    /****************Array.cpp*******************/
    #include"Array.h"
    #include<iostream>
    using?namespace?std;
    Array::Array(int?len){
    ????this->len?=?len;
    }
    Array::~Array(){}
    Array*?Array::setLen(int?len){
    ????this->len?=?len;
    ????return?this;
    }
    int?Array::getLen(){
    ????cout<<"len="<<len<<endl;
    ????return?this->len;
    }
    Array*?Array::printInfo(){
    ????cout<<"len="<<len<<endl;
    ????return?this;???//this是指針,*this就是一個對象
    }
    /****************demo.cpp*******************/
    #include<stdlib.h>
    #include<iostream>
    #include"Array.h"
    using?namespace?std;
    int?main(void){
    ????Array?arr1(2);
    ????Array??*arr2;
    ????arr2?=?&arr1;
    ????arr2->printInfo()->setLen(3)->printInfo();
    ????arr2->getLen();
    ????system("pause");
    ????return?0;
    }


    查看全部
  • /***************arry.h******************/
    class?arry
    {
    ????public:
    ????????arry(int?_count);
    ????????virtual?~arry();
    ????????arry?(const?arry?&arr);
    ????????void?setCount(int?_count);
    ????????int?getCount();
    ????????void?printAddr();
    ????????void?printarr();
    ????protected:
    ????private:
    ????????int?m_iCount;
    ????????int?*m_pArr;
    };
    /***************arry.cpp******************/
    #include<iostream>
    #include"arry.h"
    using?namespace?std;
    arry::arry(int?_count)
    {
    ????m_iCount?=?_count;
    ????m_pArr?=?new?int[m_iCount];
    ????for(int?i?=?0;i<m_iCount;i++){
    ????????m_pArr[i]?=?i;
    ????//cout<<i<<endl;
    ????}
    ????cout<<"arry(int?_count)"<<endl;
    }
    arry::arry(const?arry&?arr){
    ????m_pArr?=?new?int[m_iCount];
    ????m_iCount?=?arr.m_iCount;
    ????//m_pArr?=?arr.m_pArr;
    ????for(int?i?=?0;i<m_iCount;i++){
    ????????m_pArr[i]?=?arr.m_pArr[i];
    ????}
    ????cout<<"arry(const?arry&?arr)"<<endl;
    }
    void?arry::?setCount(int?_count){
    ????m_iCount?=?_count;
    }
    int?arry::?getCount(){
    ????return?m_iCount;
    }
    void?arry::?printAddr(){
    ????cout<<"m_pArr的值:"<<m_pArr<<endl;
    }
    void?arry::printarr(){
    ????for(int?i?=?0;i<m_iCount;i++){
    ????cout<<m_pArr[i]<<endl;
    ????}
    }
    arry::~arry()
    {
    ????delete?[]m_pArr;
    ????m_pArr?=?NULL;
    ????cout<<"~arry()"<<endl;
    ????//dtor
    }
    /***************demo.cpp******************/
    #include<iostream>
    #include<stdlib.h>
    #include"arry.h"
    using?namespace?std;
    int?main(void){
    ????arry?arr1(6);
    ????//arr1.setCount(6);
    ????arry?arr2?=?arr1;
    ????arr1.printAddr();
    ????arr2.printAddr();
    ????arr2.printarr();
    ????system("pause");
    ????return?0;
    }


    查看全部

舉報

0/150
提交
取消
課程須知
本課程是C++初級課程 需要掌握C++語言基礎語法 如果不太熟悉的話,可以觀看: 《C++遠征之起航篇》 《C++遠征之離港篇》 《C++遠征之封裝篇(上)》
老師告訴你能學到什么?
1、對象數組的定義和使用 2、對象成員的定義和使用 3、深拷貝和淺拷貝 4、對象指針、對象引用的定義和使用 5、常對象指針、常對象引用、常成員函數的定義和使用

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!