C 複習之 物件和類2(7)

2021-08-14 18:05:59 字數 2726 閱讀 7279

下面宣告乙個類方法。

const stock & topval(const stock &s) const;
該類方法函式隱式地訪問乙個物件(預設可以訪問該類的私有成員),而顯式地訪問另乙個物件,並返回乙個物件的引用。括號中的const表明,該函式不會修改被顯式訪問的物件;而括號後的const表明,該函式不會修改被隱式訪問的物件。由於該函式返回了兩個const物件之一的引用,隱藏返回型別也應為const引用。

top = stock1.topval(stock2);

top = stock2.topval(stock1);

第一種隱式地訪問stock1,而顯式地訪問stock2。

const stock & stock::topval(const stock & s)const

this是乙個特殊的指標,用來呼叫成員函式的物件。一般來說,所有的類方法都將this指標設定為呼叫它的物件的位址,total_val是this->total_val的縮寫。this指標指向物件,如果要表示物件本身,使用*this

返回型別為引用表明返回的是呼叫物件本身而不是其副本。

class stock

;const stock & stock::topval(const stock & s)const

stock

mystuff

[4];

物件陣列中的物件初始化時,總是呼叫預設建構函式,然後如果有顯式地建構函式再生成臨時物件來覆蓋預設構造生成的物件。

const

int stks = 10;

stock stocks[stks]=;

剩餘的7個元素將使用預設建構函式進行初始化。

#include

#include "stock.h"

const

int stks = 4;

int main()

; std::cout

<< "stock holdings: \n";

int st;

for (st = 0; st < stks; st++)

const stock *top = &stocks[0];

for (st = 1; st < stks; st++)

std::cout

<< "\nmost valuable holding:\n";

top->show();//指標使用->,物件使用.

system("pause");

return

0; }

std::cin.get();

system("pause");

return

0;}

在類中定義的名稱的作用域都為整個類。

作用域為類的常量使用列舉型或使用static const int months= 12;

使用類來建立乙個「棧」:

可以將上述描述轉換為乙個類宣告,其中公有成員函式提供了表示棧操作的介面,而私有資料成員負責儲存棧資料。

私有部分必須表明資料儲存的方式,公有部分來表示通用術語(建立棧、壓入)。

//程式清單

#ifndef stack_h_

#define stack_h_

typedef unsigned long item;

class stack

; item item;

int top;

public:

stack();

bool isempty()const;

bool isfull()const;

bool push(const item & item);

bool pop(const item & item);

};#endif

#include "stack.h"

stack::stack()

bool stack::isempty()const

bool stack::isfull()const

bool stack::push(const item & item)

else

return

false;

}bool stack::pop( item & item)

else

return

false;

}

#include

#include

#include "stack.h"

int main()

switch (ch)

break;

default:

break;

}cout

<< "please enter a to add a purchase order,\n"

<< " p to process a po, or q to quit.\n";

}cout

<< "bye\n";

system("pause");

return

0;}

27 C 基礎 類和物件的使用

1.1 第一種方法 訪問物件 第一種方法 訪問物件 student mstudent mstudent.setname 李白 result mstudent.getname cout name result endl 1.2 第二種方法 通過指標進行方法 第二種方法 通過指標進行方法 student...

C 類與物件 複習筆記

類與物件 類是物件的抽象,而物件是類的具體例項 類是抽象的,不占用記憶體,而物件是具體的,占用儲存空間 面向過程與物件導向 c語言是面向過程的,關注的是過程中的資料與方法 c 是物件導向的,關注的是物件的屬性與功能 類的定義 類的成員函式預設是內聯的。除了類外定義且不加inline關鍵字。類的兩種定...

C 物件導向類的複習

類的宣告 類修飾符 class 類名 常用修飾符 new僅允許在巢狀類宣告時使用,表明類中隱藏了由記類中繼承而來的 與基類中同名的成員 public不限制對該類的訪問 protected只能從其所在類和所在類的子類進行訪問 internal只有其所在類才能訪問 private只有.net中的應用程式...