導航:首頁 > 源碼編譯 > 對象數組編譯

對象數組編譯

發布時間:2022-04-11 18:35:13

Ⅰ C++中對象數組的初始化問題

//當有自定義構造函數時,必須要有一個沒參數的構造函數
#include<stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string>
using namespace std;
class Stu
{
public :
Stu(); //必須要有
Stu(string name);
private:
string mName;
};
Stu::Stu()
{

}
Stu::Stu(string name)
{
mName = name;
}

void main()
{
Stu stu[10];
for(int i = 0; i < 10; ++i)
{
stu[i] = Stu("test");
}
}

Ⅱ 數組或對象經過編譯後變成什麼了。

數組 在程序層面 是一個標示符 該標示符表示了地址以及對該內存的數據訪問形式 在內存區 分配了一塊內存
對象 擁有函數區和成員區 對c++ 不熟 不過基本上對數據的訪問都是類似的

Ⅲ c++中 關於對象數組的 我寫的這個程序怎麼編譯不過啊 請大家 幫著看看 謝謝 多謝啊

你這個程序裡面有兩個錯誤
1,Box (int h=10,int w=12,int len=15)的int h=10後的逗號是中文輸入的逗號,需要改成英文輸入的逗號
2,如果你使用的是#include<iostream.h>則不需要下面的using namespace std;,如果你要使用下面的using namespace std;則上麵包含的應該是#include<iostream>,這兩種是不同的。
#include <iostream>//#include<iostream.h>
using namespace std;
class Box
{public:
Box (int h=10,int w=12,int len=15):height(h),width(w),length(len)
{}//Box (int h=10,int w=12,int len=15)
int volume();
private:
int height;
int width;
int length;
};
int Box::volume()
{return(height*width*length);
}
int main()
{Box a[3]={Box(10,12,15),
Box(15,18,20),
Box(16,20,26)};
cout<<"volume of a[0] is "<<a[0].volume()<<endl;
cout<<"volume of a[1] is "<<a[1].volume()<<endl;
cout<<"volume of a[2] is "<<a[2].volume()<<endl;
return 0;
}

java 簡單編程 對象數組

下面是main方法的代碼:
public static void main(String[] args)
{
Alone6_2 [] ob = new Alone6_2[10];

//建立第一個符合條件的對象
Alone6_2 a1 = new Alone6_2();
a1.setAB(1, 2);
//把這個對象放入數組第一個
ob[0] = a1;

//第一個對象上面建立,下面用循環生成剩下的9個
for (int i = 1; i < ob.length; i++)
{
//先新建出對象
Alone6_2 a = new Alone6_2();
//滿足要求
int aFiled = ob[i-1].getA() + ob[i-1].getB();
int bFiled = ob[i-1].getA() * ob[i-1].getB();
//設置新建出來對象的a,屬性
a.setAB(aFiled, bFiled);
//放入數組
ob[i] = a;
}

//開始輸出數組,其實可以在上面的循環中,輸出,
//為了清晰,這里在全部建立完對象後再循環一次輸出

for (int i = 0; i < ob.length; i++)
{
Alone6_2 a = ob[i];
System.out.println("ob["+i+"]="+a.getA()+",ob["+i+"]="+a.getB());
}

}

注釋已經說明了大部分,如果還有疑問可以繼續討論。

輸出結果是:
ob[0]=1,ob[0]=2
ob[1]=3,ob[1]=2
ob[2]=5,ob[2]=6
ob[3]=11,ob[3]=30
ob[4]=41,ob[4]=330
ob[5]=371,ob[5]=13530
ob[6]=13901,ob[6]=5019630
ob[7]=5033531,ob[7]=1058399894
ob[8]=1063433425,ob[8]=-1642014574
ob[9]=-578581149,ob[9]=117143346

PS:後面幾個出現負數,是因為int型的溢出了,題目的意思已經符合了。簡單的解決辦法是講Alone對象中的a,b換成long類型即可

Ⅳ C++對象數組創建編譯錯誤

要想創建數組:

  1. 必須有完整的類定義

  2. 類必須有不帶參數的默認構造函數

因此

  1. 檢查是否有不帶參的構造函數

  2. 成員函數要用對象數組,那麼在類的定義里聲明這個成員函數,而不是定義這個函數(即不寫函數體),直到整個類被完全定義。然後寫成員函數的定義。

Ⅵ c++編程:對象數組

//class Object;

Object one, two, three;
Object array[3]={one, two, three}; //對象數據賦初值

Ⅶ c++怎麼在頭文件中定義對象數組,而在各個cpp文件中使用,而編譯鏈接時不會提示重復定義

在你的頭文件這么寫
#ifndef XXX
#define XXX
你的代碼
#endif
目的是讓這個頭文件只被包含一次,就不會提示重復定義了。

Ⅷ 對象數組的數組

關於可變長數組(VLA)的問題:原來的C標准中是不允許可變長數組出現的,也就是你說的那個n可變。但是在C99中,加入了對VLA的支持,也有不少編譯器已經支持這個了,而且好像沒有太多的人用這個可變長數組。
如果有過用其它語言編程的經歷,那麼想必會熟悉數組的概念。由於有了數組,可以用相同名字引用一系列變數,並用數字(索引)來識別它們。在許多場合,使用數組可以縮短和簡化程序,因為可以利用索引值設計一個循環,高效處理多種情況。數組有上界和下界,數組的元素在上下界內是連續的。因為 Visual Basic對每一個索引值都分配空間,所以不要不切實際聲明一個太大的數組。
此處數組是程序中聲明的變數數組。它們不同於控制項數組,控制項數組是在設計時通過設置控制項的 Index 屬性規定的。變數數組總是連續的;與控制項數組不同的是,不能從一個數組的中部載入或卸載數組元素。
一個數組中的所有元素具有相同的數據類型(在在C、C++、Java中都這樣。但也並非所有涉及數組的地方都這樣,比如在Visual Foxpro中的數組就並沒這樣的要求)。當然,當數據類型為 Variant 時,各個元素能夠包含不同種類的數據(對象、 字元串 、數值等等)。 可以聲明任何基本數據類型的數組,包括用戶自定義類型(請參閱 「再論編程」中的「創建自己的數據類型」)和對象變數(請參閱「用對象編程」)。
如果要用戶輸入的是一個數組,一般是用一個循環,但是在輸入前也需要固定數組的大小。
compact跟變長數組沒有太大的關系,也應該用不到變長數組。因為一般的傳數組到函數中就是傳數組的地址和元素的個數的,那隻是一個提示,不是要求。
原型可以這樣寫(假設數組的元素是type):
int compact(type *Array,int Count)
數組類型說明 在C語言中使用數組必須先進行類型說明。
數組說明的一般形式為: 類型說明符 數組名 [常量表達式],……; 其中,類型說明符是任一種基本數據類型或構造數據類型。 數組名是用戶定義的數組標識符。 方括弧中的常量表達式表示數據元素的個數,也稱為數組的長度。 int a[10]; 說明整型數組a,有10個元素。
float b[10],c[20]; 說明實型數組b,有10個元素,實型數組c,有20個元素。
char ch[20]; 說明字元數組ch,有20個元素。

Ⅸ java對象數組問題

BiTreeNode[] bitreenode=new BiTreeNode[n]; 如果改成
BiTreeNode[] bitreenode;會出現編譯錯誤,因為bitreenode沒有初始化,並沒有創建實例,java會強制限制禁止沒有初始化的情況,但你可用=null初始化,到後面進行賦值。如果是對象數組,後面調用bitreenode時別忘了初始化對象,比如bitreenode=new BiTreeNode[3];否則執行bitreenode[i] = new BiTreeNode(s, bitreenode[l], bitreenode[r]);時出現空錯誤,試問:i到底是多少好呢?答案是任何整數都不行,必須初始化bitreenode對象數組。

略過這一點,從上面的代碼看來,執行是可能發生數組越界異常,因為從
BiTreeNode[] bitreenode=new BiTreeNode[n]; 看來,調用bitreenode[i]時,i的取值范圍為[0,n-1],後面有bitreenode[i]=new BiTreeNode(s,bitreenode[l],bitreenode[r]);之類的語句,也就是說從控制台輸入的數字也就是後來賦值給l或r的那些數據不能超過這個范圍!當然,如果不小心n<=0,運行時執行到調用bitreenode[i]時立即發生數組越界異常。如果保證從控制台輸入的數字在[0,n-1],理論上是可以得到預想輸出結果的。

Ⅹ C++編程:對象數組

你確定是對象數組的指針,而不是對象指針的數組?
假設類名叫Object

對象的數組的指針:
Object objects[100];

Object (*pObjects)[100]; // 就是它

pObjects = &objects; // 必須與objects的長度相同才能這樣賦值

對象指針的數組:

Object* objects[100];
滿意請採納。

閱讀全文

與對象數組編譯相關的資料

熱點內容
極光電商app是什麼軟體 瀏覽:68
php調用html5 瀏覽:498
修改pdf安卓 瀏覽:475
php方法命名 瀏覽:159
200命令 瀏覽:328
圖庫已存在文件夾 瀏覽:728
U8硬體加密和軟體加密區別 瀏覽:282
android設置啟動頁 瀏覽:115
mt4代碼怎麼加密 瀏覽:100
python的除法運算符 瀏覽:251
程序員逼宮老闆 瀏覽:302
亞馬遜雲伺服器多久會暫停 瀏覽:123
旅居游用什麼app 瀏覽:259
代碼加密後有什麼影響 瀏覽:154
繽紛水母系列解壓 瀏覽:994
mc無敵命令 瀏覽:88
windows核心編程光碟 瀏覽:621
美女和程序員相親視頻 瀏覽:659
你熟悉哪些演算法 瀏覽:771
杭州有什麼伺服器地址 瀏覽:1006