为了账号安全,请及时绑定邮箱和手机立即绑定

请问从堆中实例化,输出结果错误怎么改

#include <iostream>

using namespace std;

class Coordinate

{

    

public:

Coordinate()

{

}

// 打印坐标的函数

void printInfo()  

{

    cout<<"("<<m_iX<<","<<m_iY<<")"<<endl;

}

public:

int m_iX;

int m_iY;

};

int main(void)

{

//定义对象数组

   Coordinate *coorArr=new Coordinate[2];

    coorArr->m_iX=1;

    coorArr->m_iY=2;

    coorArr++;

    coorArr->m_iX=3;

    

    coorArr->m_iY=4;


//遍历数组,打印对象信息

for(int i = 0; i < 2; i++)

{

    

    

coorArr[i].printInfo();

        coorArr--;

}

coorArr++;

delete []coorArr;

coorArr=NULL;

return 0;

}


正在回答

3 回答

int main(void)

{

//定义对象数组

    Coordinate *coorArr = new Coordinate[2];

    coorArr->m_iX = 1;

    coorArr->m_iY = 2;

    coorArr++;

    coorArr->m_iX = 3;

    coorArr->m_iY = 4;

    

    //coorArr[0].m_iX = 1;

    //coorArr[0].m_iY = 2;

    //coorArr[1].m_iX = 3;

    //coorArr[1].m_iY = 4;


//遍历数组,打印对象信息

for(int i = 0; i < 2; i++)

{

coorArr[i].printInfo();

coorArr-=2;

}

coorArr++;

delete []coorArr;

coorArr = NULL;

return 0;

}

循环里面指针要减2,不过最后结果会倒着打印出来。

0 回复 有任何疑惑可以回复我~

 //定义对象数组

    Coordinate *coorArr = new Coordinate[2];
    coorArr[0].m_iX = 1;
    coorArr[0].m_iY = 2;
    coorArr[1].m_iX = 3;
    coorArr[1].m_iY = 4;

    //遍历数组,打印对象信息
    for (int i = 0; i < 2; i++)
    {
        coorArr[i].printInfo();
    }
    delete[]coorArr;
    coorArr = NULL;
    return 0;


0 回复 有任何疑惑可以回复我~

要用coordinate[0].m_iX   coordinate[1].m_iX 这样的才能准确的给每个对象赋值吧  

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(下)
  • 参与学习       70919    人
  • 解答问题       514    个

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

请问从堆中实例化,输出结果错误怎么改

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信