看到很多人说这节难,我说下心得,其实浅拷贝和深拷贝在不涉及内存管理的时候是一样的,什么时候不涉及内存管理呢,就是类中没有指针,数组这类东西,那么对象间的复制都是自动分配内存自动回收,但是有了指针,数组,那么这种内存需要我们去管理的时候,在申请和回收的时候就要注意,这时候才用到深拷贝
2017-07-02
最新回答 / HorseManPassby
因为构造函数已经初始化m_iX,m_iY了,所以不需要定义set函数了,显得重复;因为这里不需要调用m_iX,m_iY,所以不需要定义get函数了
2017-06-30
class Coordinate
{
public:
Coordinate(int x, int y) :m_iX(x), m_iY(y)
{
}
void printInfo()
{
cout << "("<<m_iX<<","<<m_iY<<")" << endl;
}
public:
int m_iX;
int m_iY;
};
int main(void)
{
Coordinate coorArr[2] = { {1,2} ,{3,4} };
for (int i = 0; i < 2; i++)
{
coorArr[i].printInfo();
}
{
public:
Coordinate(int x, int y) :m_iX(x), m_iY(y)
{
}
void printInfo()
{
cout << "("<<m_iX<<","<<m_iY<<")" << endl;
}
public:
int m_iX;
int m_iY;
};
int main(void)
{
Coordinate coorArr[2] = { {1,2} ,{3,4} };
for (int i = 0; i < 2; i++)
{
coorArr[i].printInfo();
}
const在前面,则是指向常变量的指针,const在后面,则是指向变量的常指针。
Coordinate * const p; // 指向对象的常指针
const Coordinate *p; // 指向常对象的指针
如果定义了一个指向常对象的指针变量,是不能通过它改变所指向的对象的值的,但是指针变量本身的值是可以改变的。
常指针一旦定义指向一个对象,那么它就不能再指向另一个对象了,但是能通过它改变白嫩所指向的对象的值。
Coordinate * const p; // 指向对象的常指针
const Coordinate *p; // 指向常对象的指针
如果定义了一个指向常对象的指针变量,是不能通过它改变所指向的对象的值的,但是指针变量本身的值是可以改变的。
常指针一旦定义指向一个对象,那么它就不能再指向另一个对象了,但是能通过它改变白嫩所指向的对象的值。
2017-06-16
const Coordinate *pCoor,难道不是叫指向常对象的指针?指向对象的常指针难道不是 Coordinate * const pCoor?
2017-06-16