-
//Coordinate.cpp #include<iostream> #include"Coordinate.h" using namespace std; Coordinate::Coordinate() { cout << "Coordinate()" << endl; } Coordinate::~Coordinate() { cout << "~Coordinate()" << endl; }查看全部
-
//Coordinate.h #include<iostream> using namespace std; class Coordinate { public: Coordinate(); ~Coordinate(); int m_iX; int m_iY; private: };查看全部
-
//main.cpp #include<iostream> #include<stdlib.h> #include"Coordinate.h" using namespace std; //对象数组 //要求: // 定义coordinate类 // 数据成员:m_iX和m_iY // 分别从栈和堆中实例化为3的的对象数组 // 给数组中的元素分别赋值 // 遍历两个数组 int main() { Coordinate coor[3]; coor[0].m_iX = 1; coor[0].m_iY = 2; coor[1].m_iX = 3; coor[1].m_iY = 4; coor[2].m_iX = 5; coor[2].m_iY = 6; Coordinate *p = new Coordinate[3]; p->m_iX = 7; p->m_iY = 8; p++; p->m_iX = 9; p->m_iY = 10; p++; p->m_iX = 11; p->m_iY = 12; for (int i = 0; i < 3; i++) { cout << "coor[1].m_iX " << coor[i].m_iX << endl; cout << "coor[1].m_iX " << coor[i].m_iY << endl; } p -= 2; for (int i = 0; i < 3; i++) { cout << "p->m_iX " << p->m_iX << endl; cout << "p->m_iY " << p->m_iY << endl; p++; } p-= 3; delete[]p; p = NULL; system("pause"); return 0; }查看全部
-
两个&:第一个为引用,第二个为取地址,注意区分。查看全部
-
加了const的对象就是常对象,加了const的对象成员就是常对象成员。常成员函数不能修改对象成员。常对象只能调用常成员函数。查看全部
-
划重点,再次强调被const修饰的变量无法在构造函数中对其赋值,只能利用初始化列表。 void xxx() const;和void xxx();互为重载。而使用的时候 类.xxx 使用的是不带const的函数。而如果需要使用带const的函数,则需要把函数写成const void xxx();查看全部
-
返回的类型不是原来的那个对象,所以如果通过这样的返回值用“.”访问是无法改变对象里面的值的。如果需要改变,则需要加上引用符号如图查看全部
-
类型为对象,返回值为*this查看全部
-
this指针就是指向本身的指针,是实例化对象的地址查看全部
-
Coordinate *p1 = NULL; p1 = new Coordinate; --->这个Coordinate后面没有加(),是因为构造函数没有参数,构造函数没有参数可以不加括号。 p1->m_ix = 10和(*p1).m_ix = 10,是两种不同的访问方法,但是结果是一样的。查看全部
-
malloc和new的区别:new在申请内存空间的时候,会调用对象的构造函数。查看全部
-
对象指针:一个指向对象的指针。 在堆中new一个对象指针的例子如图查看全部
-
深拷贝先new一个内存,然后将值一个个的赋予内存中。查看全部
-
一个深拷贝的具体例子查看全部
-
深拷贝,浅拷贝: 因为指针的原因,如果是浅拷贝,原指针指向的一块内存被释放了之后,拷贝指针就会崩溃,所以需要用到深拷贝。 深拷贝是让两个指针指向不同的地址,将里面的元素一一拷贝出来,而不是简单的将两个指针的地址进行拷贝。查看全部
举报
0/150
提交
取消