當前位置:編程學習大全網 - 源碼下載 - 這個C++源程序,為什麽在不同的IDE上調試結果不同?

這個C++源程序,為什麽在不同的IDE上調試結果不同?

妳的動態分配有問題,主要是錯在深拷貝的構造函數和重載的賦值運算符上了,不同環境下對這些錯誤容忍度不同,以下是改了的:

#include<iostream>

using namespace std;

class List {

private:

double *node;

int *size;

public:

List() { node=new double(0); size=new int(0); }

List(double *x)

{

node = new double(*x);

size=new int(0);

}

List(const List &x) {

cout << "拷貝構造函數" << endl;

node=new double(*x.node);

size=new int(*x.size);

}

~List() {

cout << "析構函數" << endl;

delete node;

delete size;

}

void output() const {

cout << "node = " << *node << "\tsize = " << *size << endl;

cout << "adress " << (void*)node << "\taddress " << (void*)size << endl;

}

List operator = (const List &x) {

//*node=*x.node;

//*size=*x.size;

delete node;

delete size;

node = new double(*x.node);

size = new int(*x.size);

return *this;

}

};

int main() {

double a=9;

List la(&a),lb;

la.output();

lb.output();

cout << "即將調用拷貝構造函數" << endl;

lb=la;

cout << "已調用拷貝構造函數" << endl;

la.output();

lb.output();

return 0;

}

  • 上一篇:工業仿真動畫制作都需要什麽軟件?
  • 下一篇:seo如何優化到首頁?
  • copyright 2024編程學習大全網