是小狐狸啊 2016-05-26 10:34 采纳率: 63.6%
浏览 1346
已采纳

C++ 关于一个成员函数的实现问题

图片说明

/*CArray是我写的、能够运行的、利用类来实现动态创建数组的工程,现在要加一个成员函数,要求如上,我把我理解的操作都写了下来,但我的疑问是在第一个判断条件中,函数返回要怎么写,是要跳过这个函数吗?除了这点,我下面写的实现过程有错吗?在main函数中能够输出对象obj1 resize后的数组吗?请大神们多多指教~*/

#include <iostream>
using namespace std;

class CArray{
public:CArray(unsigned int length=0);     
public:
    void print();
    void set();
    void resize(unsigned int length=0);
private:
    double *m_data;
    unsigned int m_nLength;
};

void CArray::resize(unsigned int length)
{
    if(length==m_nLength)
    //函数返回要怎么写??

    else
    delete []m_data;
    if(length==0)
    m_data=NULL;
    else
    m_data=new double[length];
    m_nLength=length;
    cout<<"请输入"<<m_nLength<<"个数:";
    unsigned int i;
    for(i=0;i<m_nLength;i++)
        cin>>m_data[i];

}
CArray::CArray(unsigned int length)
{
    m_nLength=length;
    if( length==0)
    m_data=NULL;
    else
        m_data=new double[length];
}

void CArray::set()
{
    if( m_nLength==0)
    m_data=NULL;
    cout<<"请输入"<<m_nLength<<"个数:";
    for(unsigned int i=0;i<m_nLength;i++)
        cin>>m_data[i];
}


void CArray::print()
{
    if( m_nLength==0)
    m_data=NULL;
        unsigned int index;
        for(index=0;index<m_nLength;index++)
                cout<<m_data[index]<<" ";
}


        int main(int argc, char* argv[])
{
        unsigned int size;
        cout<<"请输入数组长度:";
        cin>>size;
        CArray obj(size);
            obj.set();
        cout<<"输入的数组为:";
        obj.print();

        CArray obj1;
        obj1.resize(3);
        obj1.print();
        return 0;
}
  • 写回答

2条回答 默认 最新

  • 小灸舞 2016-05-26 12:29
    关注

    别的函数写的没问题,感觉你应该多个if判断

     void CArray::resize(unsigned int length)
    {
        if(length==m_nLength)
            return;
        if(m_nLength > 0)//是否创建了动态数组
            delete []m_data;//先删除原来的数组
    
        if(length==0)
            m_data=NULL;
        else
            m_data=new double[length];
        m_nLength=length;
        cout<<"请输入"<<m_nLength<<"个数:";
        unsigned int i;
        for(i=0;i<m_nLength;i++)
            cin>>m_data[i];
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)