-
坐標類構造函數(shù)沒有參數(shù),線段類實例化可以不使用初始化列表 坐標類必須有參數(shù)傳入,線段類必須使用初始化列表的方式把數(shù)據(jù)傳入查看全部
-
常成員函數(shù)不能改變數(shù)據(jù)成員的值的原因查看全部
-
常成員函數(shù)不能改變數(shù)據(jù)成員的值查看全部
-
類的數(shù)據(jù)成員用const修飾時必須用初始化列表初始化查看全部
-
this指針指向所在對象本身的地址查看全部
-
this的值是對象本身地址;*this 就是對象arr1 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. 訪問查看全部
-
this指針:編譯器無法識別參數(shù)和數(shù)據(jù)成員,需要標記參數(shù)或者數(shù)據(jù)成員; 編譯器會對每個成員函數(shù)的參數(shù)列表中加一個this指針;查看全部
-
使用對象指針,就會使用內存,若使用堆的方式實例化對象時,申請到的內存,要記得歸還給系統(tǒng)(delete p;p== NULL;),否則會造成內存泄露; *p2 = &p1;p2可以操作p1;查看全部
-
(*p)該寫法使指針變成一個對象; 使用new分配內存,可以自動調用類的構造函數(shù),而C語言中使用malloc僅僅是分配內存空間;查看全部
-
Mark:注意他們之間的區(qū)別 1 Array Array::printInfo() { cout<<"len="<<len<<endl; return *this; } 2 Array& Array::printInfo() { cout<<"len="<<len<<endl; return *this; } 3 Array* Array::printInfo() { cout<<"len="<<len<<endl; return this; } ----》 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. 訪問查看全部
-
淺拷貝:簡單的將數(shù)據(jù)的值進行拷貝 深拷貝:將指針所指的內存與內存中的數(shù)據(jù)拷貝出來查看全部
-
實例化對象A時,如果對象A有對象成員B,那么先執(zhí)行對象B的構造函數(shù),再執(zhí)行A的構造函數(shù)。查看全部
-
line::line(int x,int y,int x1,int y1):m_coor(x1,y1),m_coor(x2,y2)初始化列表 坐標類構造函數(shù)沒有參數(shù),線段類實例化可以不使用初始化列表 坐標類有參數(shù)傳入,線段類必須使用初始化列表的方式把數(shù)據(jù)傳入查看全部
-
#include <iostream> using namespace std; class Coordinate { public: Coordinate(int x, int y) { // 設置X,Y的坐標 m_iX = x; m_iY = y; } public: int m_iX; int m_iY; }; int main(void) { // 在堆上創(chuàng)建對象指針 Coordinate *p = new Coordinate(3,5); // 打印坐標 cout <<"("<<(*p).m_iX<<","<<(*p).m_iY<<")"<< endl; // 銷毀對象指針 delete p; p = NULL; return 0; }查看全部
-
注意dellete【】p非法,因為此時的p指向了非法元素查看全部
舉報
0/150
提交
取消