C++
C++
Du.h
class Du { public: Du(); ~Du(); public: int m_iX; int m_iY; };
Du.cpp
#include <iostream> #include "du.h" using namespace std; Du::Du(){ cout << "Du" << endl; } Du::Du(){ cout << "~Du" << endl; }
Test.cpp
#include <iostream> #include <stdlib.h> #include "du.h" using namespace std; int main(void) { Du du[3]; du[0].m_iX = 1; du[0].m_iY = 2; //分配到堆 Du *d = new Du[3]; d->m_iX = 11; d->m_iY = 22; d++;//指向第二个元素。 d->m_iX = 111; d[0].m_iY = 222;//此时d[0]表示第二个元素,因为上面d++了。这样第一个元素就没法通过下标访问了,因为没有d[-1]。 d[1].m_iX = 1111;//那么这里的d[1]就表示第三个元素了。以d[0]。 d++;//指向第三个元素。 d->m_iY = 2222; for (int i = 0; i < 3; i++) { cout << "du_x" << du[i].m_iX<< endl; cout << "du_y" << du[i].m_iY << endl; } for (int i = 0; i < 3; i++) { cout << "d-x" << d[i].m_iX << endl; cout << "d_y" << d[i].m_iY << endl; i--; } d++;//注意这里的指向。 delete[]d; d = NULL; system("pause"); return 0; }