作者andy910389 (*微涼的你*)
看板C_Sharp
標題[問題] 物件導向建構子的小小問題
時間Sun May 2 21:30:48 2010
剛剛在練習書上的習題~他要求建立一個stack,然後類別中的要建構子
是用來配置堆疊的陣列大小,
但是我發生一個問題就是,配置陣列如果放在建構子,那類別中的其他的函式如果用
到此陣列的就會說他沒有宣告,因此必須要拿出來放在成員中配置,但問題是
一開始並不知道陣列大小,是要給使用者輸入才會為這個陣列配置記憶體,
但偏偏宣告陣列又要給他初始值陣列大小 0rz 那我到底應該怎麼辦.....
有哪為大大可以指導一下嗎?
以下是我的主要程式碼
namespace ConsoleApplication2
{
class stack
{
public int num=0; //用來存放陣列元素的索引值
public int[] anyData={0}; //宣告陣列,類別的成員函式才能使用他
(陣列大小未知)
public stack(int n2) //建構子
{
int[] anyData = new int[n2];//由於題目規定,且現在才能知道陣列大小,
所以又宣告配置一次(這樣感覺有錯...)
}
public void push(int n)
{
anyData[num] = n;
num++;
}
....................
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請輸入陣列大小:");
int n;
n=int.Parse(Console.ReadLine());
stack s = new stack(n);
Console.WriteLine();
string k = "Y";
int sel;
while (k.ToUpper() == "Y")
{
Console.WriteLine("請選擇功能:(1.輸入2.刪除3.印出)");
sel = int.Parse(Console.ReadLine());
switch (sel)
{
case 1: //主要是在放入元素這邊都會出問題
{
Console.WriteLine("請輸入數字:");
int n1 = int.Parse(Console.ReadLine());
s.push(n1);
break;
}
case 2:
.................
}
}
Console.ReadLine();
}
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.60.253.80
→ james732:int[] anyData = new int[n2]; 改成 05/02 21:33
→ james732:anyData = new int[n2]; 即可 05/02 21:33
→ andy910389:可以了~~謝謝囉 05/03 10:44