我是C++的新手,我試圖做以下事情:類和數組運算符
我有一個簡單的類,名爲「sim」。我想創建一個類型爲「sim」的10個元素的數組。所以我用sim** a = new sim*[10]
。
然後我運行一個循環,並創建新的元素,如a[i]=new sim(i)
。但是當我後來嘗試打印每個a [i]的值(字段)時,除了我以外,我沒有得到它。
下面是代碼:
#include "stdafx.h"
#include <iostream>
using namespace std;
class sim{
private:
int x;
const int y;
public:
sim();
sim(int z);
~sim();
void showInfo();
sim& operator=(const sim& s);
};
sim::sim():y(10),x(0)
{}
sim::sim(int z):y(10),x(z)
{}
sim::~sim()
{}
void sim::showInfo()
{
cout<<"x="<<x<<", y="<<y<<endl;
}
sim& sim::operator=(const sim& s)
{
x=s.x;
return *this;
}
int _tmain(int argc, _TCHAR* argv[])
{
sim** a = new sim*[10];
for(int i=0;i<10;i++)
{
a[i]= new sim(i);
}
for(int i=0; i<10; i++)
(*a)[i].showInfo();
getchar();
return 0;
}
這裏是錯誤的輸出:
x=0, y=10
x=-33686019, y=-830047754
x=-33686019, y=-572662307
x=1869774733, y=201385040
x=725928, y=726248
x=1423328880, y=11
x=24, y=2
x=55, y=-33686019
x=4814584, y=-1
x=0, y=0
Ÿ應該是10總是和x應該是0-9。 我在做什麼錯? 謝謝!
出了什麼問題根本'sim arr [10];'? – jrok 2013-03-12 20:26:20
你有意不使用'std'庫嗎? – 2013-03-12 20:26:27
亞歷克斯:是的。這是作業,我們不允許使用std庫。 jrok:我試過了,沒有運氣。當我做sim arr [10]時,我不能使用sim [i] = new sim(i)。 – bomba6 2013-03-12 20:37:21