对象数组
class Coordinate{public:Coordinate();private:int m_iX;int m_iY;}栈中创建Coordinate coor[3];堆中创建Coordinate *p = new Coordinate[3];p -> m_iX = 7;p[0].m_iY = 9;p++;p -> m_iX = 11;p[0].m_iY = 12;for(int i = 0; i<3; i++){cout << "cout_X" << coor[i].m_iX << endl;cout << "cout_Y" << coor[i].m_iY << endl;}for(int j = 0; j<3; j++){cout << "cout_X" << p -> m_iX << endl;cout << "cout_Y" << p -> m_iY << endl;p --;}//堆中创建的对象需要释放内存,且p前面的[]需要加,不然只是释放p的第一个元素内存p++;delete []p;
对象成员
class Line{public:Line();private:Coordinate m_colorA;Coordinate m_colorB;}int main(void){Line *p = new Line();}
对象成员有参构造方法
Line::Line(int x1, int y1, int x2, int y2)::m_coorA(x1, y1), m_coorB(x2, y2){cout << "Line" << endl;}
深拷贝和浅拷贝
浅拷贝
class Array {public:Array() {m_iCount = 5;};Array(const Array &arr) {m_iCount = arr.m_iCount;};private:int m_iCount;};
深拷贝
class Array {public:Array() {m_iCount = 5;m_pArr = new int[m_iCount];};Array(const Array &arr) {m_iCount = arr.m_iCount;m_pArr = new int[m_iCount];for (int i = 0; i < m_iCount; ++i) {m_pArr[i] = arr.m_pArr[i];}};private:int m_iCount;int *m_pArr;};
对象指针

对象成员指针

this指针
通过this指针就可以访问到所属类中的数据成员

c++在编译的时候为每个成员函数加了一个this指针
返回调用对象的引用

返回调用对象的指针

常对象成员和常成员函数


