1樓:篤俠
物件陣列是由預設建構函式(即無參建構函式)初始化的。因此,你的提供參建構函式。
2樓:
stu=new student[5];這條語句定義了含有5個student物件的陣列,但沒有初始化,所以你要在類裡面加一個無參的建構函式
student()
3樓:
不知道你是從哪本書看到這麼一說的?建立物件的時候,就會呼叫預設建構函式?
你先要搞清楚,什麼時候會有預設建構函式存在?
當你沒有定義任何建構函式的時候,系統會自動給你新增了一個無引數、函式體為空的預設建構函式,一旦你自己定義了一個或者多個建構函式,不管他們有沒有帶引數,那麼系統將不再為你提供預設建構函式。。。
不信的話,你這樣子吧,把無引數的建構函式去掉,然後你宣告一個物件陣列,不進行初始化,即stock stocks[stks],是不是編譯不過?看看系統是不是提示沒有預設建構函式?
也就是說,當你定義了stock(...)這樣的建構函式之後,系統已不再給你提供預設建構函式了,更別提去呼叫它了……
假如說,你定義的時候,沒有顯式的去呼叫帶引數的建構函式去對物件陣列進行初始化的話,那麼它就會呼叫無引數的建構函式,去建立物件,如stock stocks[stks];
j**a中怎麼初始化物件陣列?
4樓:
初始化陣列有三種方式,以下都是去初始化一個string型別長度2的陣列:
方式一:
string strs = new string[2];
strs[0] = "0";
strs[1] = "1";
方式二:
string strs = new string;
方式三:
string strs = ;
三種方式,都有自己的使用場景,在合適場景使用即可。
5樓:小西
定義並初始化方法一:
string a = new string[3];
a[0] = "a";
a[1] = "b";
a[2] = "c";
定義並初始化方法二:
string b = new string;
6樓:匿名使用者
嗯,new之後只是分配了空間,如果不指定值,物件陣列空間對應的就是空。那麼如你所說,可否詳盡一下錯誤呢?
7樓:
stu=new student[5];這條語句定義了含有5個student物件的陣列,但沒有初始化,所以你要在類裡面加一個無參的建構函式
student()
8樓:
定義三個參量,後面兩個變數在應用的時候設為空就可以了!!
9樓:死後是好人
你這個試試對物件陣列的一個宣告,並沒有示例話,所以會報空指標異常這個陣列物件都是現用現初始化的
animals an=new animals[5];//這只是個物件型別陣列的宣告
用的時候需要
for(int i=0;i<5;i++)
an[i]=new animals();
這樣你明白了吧
你前面的那個光宣告瞭陣列,但是沒有呼叫animals的建構函式,你陣列裡的每個元素都是一個物件,使用前必須要先例項化
如果你只是使用者輸入長度,
animals an=new animals[n];
宣告時是可以用變數的
或者你直接animals an=new animals[100];定義一個大陣列,要用的時候再new animals();例項化,或者用linkedlistan=new linkedlist();定義一個動態陣列
10樓:匿名使用者
新增an[3]=an[4]=null;語句即可。
11樓:匿名使用者
new 之後本來就全為空
c# 如何初始化物件陣列
12樓:仙戈雅
namespace test
public person(string n,int a)public string name
public int age
}class program,
new person
};foreach (person p in person),",p.name,p.age);
}console.writeline();
// 方案二:直接初始化物件陣列
person person2 = new person;
console.readkey();}}}
13樓:dara的世界
class classes=new class[n];
14樓:測試成功上線
string arr =new string[i] i =隨機數
如何初始化char陣列
15樓:育知同創教育
char str[10]="hello";
char str[10]=;
char str[10]=;
char str[10]=;
char str[10]="hello, world.\n";
char str="hello, world.\n";
第一種情況:初始化資料小於陣列長度
如前面兩個初始化的例子,這兩個例子的效果一樣,前五個字元為hello,剩餘的用'\0'填充
第三行與第四行,都只指定了第一個字元,剩餘的全部用'\0'填充。第四個例子相當將整個陣列初始化為'\0'
第二種情況:初始化資料等於或超過資料長度
這種情況下,超出的部分將被丟棄,所以最五個例子的最後一個字元為'r'.
此時使用一些字串函式時要特別注意,因為該陣列不含有'\0',會造成不可預期的結果
第三種情況:不指定陣列長度
這種情況下,陣列部分如果不含有明確指定的'\0',那麼編譯時會被自動新增一個'\0';
在陣列不含有明確的'\0'時,sizeof=strlen+1
j**a中如何初始化物件陣列,並增加元素
16樓:熒光小草
如果有一個類叫做dog的話 可以這麼做
dog dog=new dog[50];
dog[0]=new dog();
dog[1]=new dog();
dog[2]=new dog();
.........
也可以用迴圈初始化
17樓:
class testarray
public void additem(int value)array[++length] = value;
}public int get(int index)}
物件陣列初始化(c#)
18樓:95郭逗比
一、一維:
int numbers = new int; //不定長
int numbers = new int[3];//定長
二、多維
int[,] numbers = new int[,],}; //不定長
int[,] numbers = new int[2,2],}; //定長
三、例子
a:int mf1=new int[6];
//注意初始化陣列的範圍,或者指定初值; //包含6個元素的一維整數陣列,初值1,2,3,4,5,6
int mf2=new int[6];
b://一維字串陣列,如果提供了初始值設定項,則還可以省略 new 運算子
string mf3=;
c://一維物件陣列
object mf4 = new object[5] ;
d://二維整數陣列,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4
int[,] mf5=new int[,],};
e://6*6的二維整型陣列
int[,] mf6=new mf[6,6];
四、取得陣列元素個數:
int b;
b = sizeof (a)/sizeof (*a);
c#字串及陣列操作
2007-12-12 17:53字串操作(取當前時間)
string time=convert.tostring(datetime.today).
split( new char ); textbox1.text=time[0]; 以空格作為分界點;
陣列概述
c# 陣列從零開始建立索引,即陣列索引從零開始。c# 中陣列的工作方式與在大多數其他流行語言中的工作方式類似。但還有一些差異應引起注意。
宣告陣列時,方括號 () 必須跟在型別後面,而不是識別符號後面。在 c# 中,將方括號放在識別符號後是不合法的語法。
int table; // not int table;
另一細節是,陣列的大小不是其型別的一部分,而在 c 語言中它卻是陣列型別的一部分。這使您可以宣告一個陣列並向它分配 int 物件的任意陣列,而不管陣列長度如何。
int numbers; // declare numbers as an int array of any size
numbers = new int[10]; // numbers is a 10-element array
numbers = new int[20]; // now it's a 20-element array
宣告陣列
c# 支援一維陣列、多維陣列(矩形陣列)和陣列的陣列(交錯的陣列)。下面的示例展示如何宣告不同型別的陣列:
一維陣列:int numbers;
多維陣列:string[,] names;
陣列的陣列(交錯的):byte scores;
宣告陣列(如上所示)並不實際建立它們。在 c# 中,陣列是物件(本教程稍後討論),必須進行例項化。下面的示例展示如何建立陣列:
一維陣列:int numbers = new int[5];
多維陣列:string[,] names = new string[5,4];
陣列的陣列(交錯的):byte scores = new byte[5]; for (int x = 0; x < scores.length; x++)
還可以有更大的陣列。例如,可以有三維的矩形陣列:int[,,] buttons = new int[4,5,3];
甚至可以將矩形陣列和交錯陣列混合使用。例如,下面的**宣告瞭型別為 int 的二維陣列的三維陣列的一維陣列int[,,][,] numbers;
初始化陣列
c# 通過將初始值括在大括號 ({}) 內為在宣告時初始化陣列提供了簡單而直接了當的方法。下面的示例展示初始化不同型別的陣列的各種方法。
注意 如果在宣告時沒有初始化陣列,則陣列成員將自動初始化為該陣列型別的預設初始值。另外,如果將陣列宣告為某型別的欄位,則當例項化該型別時它將被設定為預設值 null。
一維陣列
int numbers = new int[5] ;
string names = new string[3] ;
可省略陣列的大小,如下所示:
int numbers = new int ;
string names = new string ;
如果提供了初始值設定項,則還可以省略 new 運算子,如下所示:
int numbers = ;
string names = ;
多維陣列
int[,] numbers = new int[3, 2] , , };
string[,] siblings = new string[2, 2] , };
可省略陣列的大小,如下所示:
int[,] numbers = new int[,] , , };
string[,] siblings = new string[,] , };
如果提供了初始值設定項,則還可以省略 new 運算子,如下所示:
int[,] numbers = , , };
string[,] siblings = , };
交錯的陣列(陣列的陣列)
可以像下例所示那樣初始化交錯的陣列:
int numbers = new int[2] , new int };
可省略第一個陣列的大小,如下所示:
int numbers = new int , new int };-或-
int numbers = , new int };
請注意,對於交錯陣列的元素沒有初始化語法。
訪問陣列成員
訪問陣列成員可以直接進行,類似於在 c/c++ 中訪問陣列成員。例如,下面的**建立一個名為 numbers 的陣列,然後向該陣列的第五個元素賦以 5:
int numbers = ;
numbers[4] = 5;
下面的**宣告一個多維陣列,並向位於 [1, 1] 的成員賦以 5:
int[,] numbers = , , , , };
numbers[1, 1] = 5;
下面宣告一個一維交錯陣列,它包含兩個元素。第一個元素是兩個整數的陣列,第二個元素是三個整數的陣列:
int numbers = new int , new int };
下面的語句向第一個陣列的第一個元素賦以 58,向第二個陣列的第二個元素賦以 667:
numbers[0][0] = 58;
numbers[1][1] = 667;
陣列是物件
在 c# 中,陣列實際上是物件。system.array 是所有陣列型別的抽象基型別。
可以使用 system.array 具有的屬性以及其他類成員。這種用法的一個示例是使用「長度」(length) 屬性獲取陣列的長度。
下面的**將 numbers 陣列的長度(為 5)賦給名為 lengthofnumbers 的變數:
int numbers = ;
int lengthofnumbers = numbers.length;
system.array 類提供許多有用的其他方法/屬性,如用於排序、搜尋和複製陣列的方法。
對陣列使用 foreach
c# 還提供 foreach 語句。該語句提供一種簡單、明瞭的方法來迴圈訪問陣列的元素。例如,下面的**建立一個名為 numbers 的陣列,並用 foreach 語句迴圈訪問該陣列:
int numbers = ;
foreach (int i in numbers)
由於有了多維陣列,可以使用相同方法來迴圈訪問元素,例如:
int[,] numbers = new int[3, 2] , , };
foreach(int i in numbers) ", i);}
該示例的輸出為: 9 99 3 33 5 55
不過,由於有了多維陣列,使用巢狀 for 迴圈將可以更好地控制陣列元素。
C 中類的建構函式的隱式初始化和顯示初始化怎麼理解
隱式初始化可以理解為自己不做任何的操作,有系統環境幫你完成變數的初始化。顯示的就是自己的操作了啊。隱式初始化,即在main 函式中,沒有顯式呼叫建構函式的語句。建構函式是在定義物件時被系統自動呼叫。如 類名 物件名 實參表 那麼顯式初始化應該是先宣告物件,再呼叫建構函式 即類名 物件名 物件名 建構...
4 請問,在C 類中如何初始化const和static資料成員
const資料成員只能在成員初始化列表進行初始化,static資料成員只能在類外進行初始化。static const資料成員既可以在宣告時初始化,也可以在類外初始化。下面是一個例子 include using namespace std class a public a ci 1 void outp...
有關於C 多維陣列的初始化,C 的二維陣列初始化
c 是在c語言的基礎上開發的一種物件導向程式語言,應用廣泛。c 支援多種程式設計正規化 物件導向程式設計 泛型程式設計和過程化程式設計。最新正式標準c 於2014年8月18日公佈。其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大程式設計師受用的最強大程式語言之一,支援類 類...