国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

C++ 對象與數(shù)組

2019-11-17 05:28:40
字體:
供稿:網(wǎng)友

  對象數(shù)組是指數(shù)組元素為對象的數(shù)組。該數(shù)組中若干個元素必須是同一個類的若干個對象。對象數(shù)組的定義、賦值和引用與普通數(shù)組一樣,只是數(shù)組的元素與普通數(shù)組不同,它是同類的若干個對象。

  1. 對象數(shù)組的定義

  對象數(shù)組定義格式如下:

   <類名><數(shù)組名>[<大小>]...

  其中,<類名>指出該數(shù)組元素是屬于該類的對象,方括號內(nèi)的<大小>給出某一維的元素個數(shù)。一維對象數(shù)組只有一個方括號,二維對象數(shù)組要有兩個方括號,等等,例如:

   DATE dates[7];

  表明dates是一維對象數(shù)組名,該數(shù)組有7個元素,每個元素都是類DATE的對象。

  2. 對象數(shù)組的賦值

  對象數(shù)組可以被賦初值,也可以被賦值。例如:

class DATE
{
 public:
  DATE(int m, int d, int y);
  void PRintf();
 private:
  int month, day, year;
};

  下面是定義對象數(shù)組并賦初值和賦值:

   DATE dates[4]={ DATE(7, 7, 2001), DATE(7, 8, 2001), DATE(7, 9, 2001), DATE(7, 10, 2001) }

  或者

   dates[0] = DATE(7, 7, 2001);
   dates[1] = DATE(7, 8, 2001);
   dates[2] = DATE(7, 9, 2001);
   dates[3] = DATE(7, 10, 2001); 三層交換技術(shù) 交換機(jī)與路由器密碼恢復(fù) 交換機(jī)的選購 路由器設(shè)置專題 路由故障處理手冊 數(shù)字化校園網(wǎng)解決方案
  指向數(shù)組的指針和指針數(shù)組

  指向數(shù)組的指針和指針數(shù)組是兩個完全不同的概念,現(xiàn)放在一起介紹是中為兩者在定義格式相似,千萬不要把它們搞混了。

  1. 指向數(shù)組的指針

  指向一般數(shù)組的指針定義格式如下:

   <類型說明符>(*<指針名>)[<大小>]...

  其中,用來說明指針的 * 要與<指針名>括在一起。后面用一個方括號表示該指針指向一維數(shù)組,后面用二個方括號表示該指針指向二維數(shù)組。<類型說明符>用來說明指針?biāo)赶虻臄?shù)組的元素的類型。例如:

   int (*P)[3];

  P是一個指向一維數(shù)組的指針,該數(shù)組有3個int型元素。

  而指向?qū)ο髷?shù)組的指針,則把<類型說明符>改為<類名>即可:

   <類名>(*<指針名>)[<大小>]...

  指向數(shù)組的指針的主要應(yīng)用思想是:將數(shù)組的首地址(二維數(shù)組的某個行地址)賦給指針,然后通過循環(huán)(for)改變指針指向的地址,從而動態(tài)的訪問數(shù)組中各個元素。

  2. 指針數(shù)組

  所謂指針數(shù)組指的是數(shù)組元素為指針的那類數(shù)組。一個數(shù)組的元素可以是指向同一類型的一般指針,也可以是指向同一類類型的對象。

  一般指針數(shù)組的定義格式如下:

   <類型名>*<數(shù)組名>[<大小>]...

  其中,*加在<數(shù)組名>前面表示該數(shù)組為指針數(shù)組。[<大小>]表示某一維的大小,即該維的元素個數(shù),…表示可以是多維指針數(shù)組,每一個[<大小>]表示一維。例如:

   int * pa[3];
   char * pc[2][5];

  在C++編程中,經(jīng)常使用char型的指針數(shù)組用來存放若干個字符串。下面是一個一維指針數(shù)組的例子。

#include
#include

const int N = 5;

void main()
{
char *strings[N]; file://定義一個一維指針數(shù)組strings
char str[80];
cout<<"At each prompt, enter a string:/n";
for (int i=0; i {
cout<<"Enter a string #"<xml:namespace prefix = i<<" /> cin.getline(str, sizeof(str));
strings[i] = new char[strlen(str) + 1];
strcpy(strings[i], str);
}
cout< for (i=0; i cout<<"String #"< }

  對象指針數(shù)組的定義如下:

  對象指針數(shù)組是指該數(shù)組的元素是指向?qū)ο蟮闹羔槪笏袛?shù)組元素都是指向同一個類類型的對象的指針。格式如下:

  <類名>*<數(shù)組名>[<大小>]...

  它與前面講過的一般的指針數(shù)組所不同的地方僅在于該數(shù)組一定是指向?qū)ο蟮闹羔?。即指向?qū)ο蟮闹羔樣脕碜髟摂?shù)組的元素。下面通過一個例子看一下對象指針數(shù)組的用法。


#include
class A
{
public:
A(int i=0, int j=0) { a=i; b=j; }
void print();
private:
int a, b;
};

void A::print()
{
cout< }

void main()
{
A a1(7, 8), a2, a3(5, 7);
A *b[3] = { &a3, &a2, &a1 };
for (int i=0; i<3; i++)
b[i]->print();
}

  帶參數(shù)的main()參數(shù)

  前面講過的main()函數(shù)都是不帶參數(shù)的。在實際編程中,有時需要main()帶參數(shù)。通過main()函數(shù)的參數(shù)給程序增加一些處理信息。一般地說,當(dāng)使用C++編寫的源程序經(jīng)過編譯連接生成的可執(zhí)行文件在執(zhí)行時,需要還命令行參數(shù),由該源程序的主函數(shù)main()就需要帶參數(shù)。使用所還有的參數(shù)來存放命令行中的參數(shù),以便在程序中對命令行參數(shù)進(jìn)行處理。

  帶有參數(shù)的main()函數(shù)頭格式如下:

   void main(int argc, char * argv[])

  其中,第一個參數(shù)argc是int型的,它用來存放命令行參數(shù)的個數(shù),實際上argc所存放的數(shù)值比命令行參數(shù)的個數(shù)多1,即將命令字(可執(zhí)行文件名)也計算在內(nèi)。第二個參數(shù)argv是一個一維的一級指針數(shù)組,它是用來存放命令行中各個參數(shù)和命令字的字符串的,并且規(guī)定:

  argv[0]存放命令字

  argv[1]存放命令行中第一個參數(shù)

  argv[2]存放命令行中第二個參數(shù)

  …

  這里,argc的值和argv[]各元素的值都是系統(tǒng)自動組賦值的。

  在這里講述帶參數(shù)的main()函數(shù)實際上是對指針數(shù)組應(yīng)用的一個具體實例。

#include
void main(int argc, char *argv[])
{
cout<<"The number of command line arguments is:"< cout<<"The program name is:"< if (argc>1)
{
cout<<"The command line arguments:/n";
for (int i=1; i cout< }
}

  上述編譯連接后的EXE文件,可在DOS命令行下調(diào)試。

  關(guān)于命令行參數(shù)的使用,其基本方法是直接引用指針數(shù)組argv[]中某個元素所存放的字符串,可用下標(biāo)方式,也可用指針方式。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南宁市| 青岛市| 堆龙德庆县| 景洪市| 淳安县| 阿荣旗| 会东县| 祁东县| 九龙城区| 沙洋县| 额尔古纳市| 清镇市| 鹿邑县| 新宁县| 迁西县| 沿河| 师宗县| 克山县| 陇川县| 松江区| 遂宁市| 富源县| 威宁| 栾川县| 喀喇| 哈尔滨市| 佛冈县| 蓬安县| 罗甸县| 竹山县| 阳信县| 富民县| 珲春市| 五常市| 三亚市| 平谷区| 和林格尔县| 冷水江市| 香河县| 乌恰县| 白银市|