动态数组C ++的无用破坏

时间:2015-11-08 18:11:42

标签: c++ dynamic-arrays

这是我的第一个问题,也是第一个C ++程序。任务是处理十六进制数字。一切都很好,直到我试图实施分裂。我不得不改变整个程序,现在它根本不起作用。

现在的主要问题是在填充数字后立即删除动态数组。

int main()
{
   string Liczba1;
   string Liczba2;
   int swi=0;
   cout << "Podaj liczbe 1 :";
   cin >> Liczba1;
   cout << "Podaj liczbe 2 :";
   cin >> Liczba2;
   LiczbaHex num1LH(Liczba1);
   LiczbaHex num2LH(Liczba2);


   LiczbaHex *copy1 = new LiczbaHex(num1LH);
   LiczbaHex *copy2 = new LiczbaHex(num2LH);
   *copy1 = LiczbaHex::m_stringToArr(copy1); //description below*
   *copy2 = LiczbaHex::m_stringToArr(copy2);
   ...

class LiczbaHex
{
   public:
       static const int g_PODSTAWA = 10;
        LiczbaHex(string _num);
        LiczbaHex();
        LiczbaHex(int *_parr, int _arrSize, bool _positive, string _num);
        LiczbaHex(LiczbaHex &liczba);
        virtual ~LiczbaHex();
        void m_display();

        static LiczbaHex m_add(LiczbaHex _num1, LiczbaHex _num2, bool _positivity);
        static LiczbaHex m_subs(LiczbaHex * _num1, LiczbaHex  * _num2, bool _positivity);
        static LiczbaHex m_decideSub(LiczbaHex * _num1, LiczbaHex * _num2);
        static LiczbaHex m_decideAdd(LiczbaHex _num1, LiczbaHex _num2);
        static LiczbaHex m_mul(LiczbaHex _num1, LiczbaHex _num2);
        static LiczbaHex m_div(LiczbaHex _num1, LiczbaHex _num2);
        static bool m_check(string _num);   
        static LiczbaHex m_stringToArr(LiczbaHex * _num);
    private:

        int m_count();
        bool m_positive;
        int m_arrSize;
        string m_num;
        int *m_parr;
};
  • m_stringToArr从

    获取LiczbaHex ond写入的对象

    string m_num to int m_parr

并且它完美运行,不幸的是,在此操作之后, copy1 对象的 m_parr 字段被删除

构造

LiczbaHex::LiczbaHex(string _num)
{
    m_num = _num;
    if (_num[0] == '-')
    {
        m_positive = false;
        m_arrSize = m_num.length()-1;
    }
    else
    {
        m_positive = true;
        m_arrSize = m_num.length();
    }
    m_parr = new int[m_arrSize];

    for (int i = 0; i<m_arrSize;i++)
    {
        m_parr[i]=0;
    }

}

LiczbaHex::LiczbaHex(LiczbaHex &liczba)
{
        m_positive = liczba.m_positive;
        m_arrSize = liczba.m_arrSize;
        m_parr = new int[m_arrSize];
        m_num = liczba.m_num;
        for (int i = 0;i<m_arrSize;i++)
        {
            m_parr[i] = liczba.m_parr[i];
        }

}

我浪费了很多时间,我需要帮助。如果您需要更多信息或代码,请告诉我。

0 个答案:

没有答案