類的定義和例項化
**示例
萬物皆物件,任何一種事物都可以看做是物件。
通過物件的屬性(名詞、數量詞、形容詞)和行為(動詞)來描述物件。
例如:描述冰箱物件
對自然世界中物件的觀察引入到程式設計實踐的一種理念和方法,這種方法稱為「資料抽象」,即在描述物件時把細節的東西剝離出去,只考慮一般性的、有規律性的、統一性的東西。
類是將多個物件的共性提取出來定義的一種新的資料型別,是對物件屬性和行為的抽象描述。
現實世界到類到程式設計世界
具體物件–抽象–>屬性/行為–例項化–>具體物件
struct/class 類名:繼承方式 基類//建構函式
~類名(void)
//析構函式
返回型別 函式名(形參表)
//成員函式
資料型別 變數名;//成員變數
};
訪問控制限定符:影響類中成員的訪問位置
public:公有成員,在任何位置都可以訪問。
private:私有成員,只有類的內部才能訪問。
protected:保護成員。
建構函式(constructor)
語法:
class 類名
};
類名 物件(構造實參表)
; 類名 物件 = 類名(構造實參表);
類名 物件陣列[元素個數]
=;
建立:類名* 物件指標 = new 類名(構造實參表)
;銷毀:delete 物件指標;
建立:
類名* 物件指標 = new 型別[元素個數]
;銷毀:
delete[
] 物件指標;
型別轉換建構函式(單參建構函式)
class 目標型別};
可以實現源型別到目標型別的隱式轉換。
注:使用explicit關鍵字,可以強制這種轉換必須顯式的完成。
class 類名};
eg:class a;
a a1;
a a2(a1)
;//呼叫拷貝建構函式
class 類名
};
#include
using
namespace std;
class
student
void
who(
void
)private
: string m_name;
int m_age;
int m_no;};
intmain
(void
)
#include
#include
#include
#include
class
clock
void
run(
void)}
sleep(1
);}}
private
:int m_hour;
int m_min;
int m_sec;};
intmain
(void
)
#include
using
namespace std;
class
student
void
who(
void
)private
: string m_name;
int m_age;
int m_no;};
intmain
(void);
sarr[0]
.who()
; sarr[1]
.who()
; sarr[2]
.who()
;//在堆區建立單個物件
student* ps =
newstudent
("貂蟬",17
,10015);
ps->
who();
//(*ps).who()
delete ps;
ps =
null
;//在堆區建立多個物件,c++11
student* parr =
new student[3]
; parr[0]
.who()
;//(*(parr+0)).who()
parr[1]
.who()
; parr[2]
.who()
;delete
parr;
parr =
null
;return0;
}
#include
using
namespace std;
class
aint m_data;};
class
bint m_num;
//基本型別
a m_a;
//類 型別(成員子物件)};
intmain
(void
)
#include
using
namespace std;
class
integer
//int->integer
//型別轉換建構函式
/*explicit*/
integer
(int data)
void
print
(void
)private
:int m_data;};
intmain
(void
)
#include
using
namespace std;
class
a//拷貝建構函式a(
const a& that)
int m_data;};
intmain
(void
)
#include
using
namespace std;
classaa
(const a& that)
int m_data;};
classb;
intmain
(void
)
#include
using
namespace std;
classaa
(const a& that)};
void
foo(a a)
a bar
(void
)int
main
(void
)
#include
using
namespace std;
class
student
*///使用初始化表:定義成員變數同時初始化
student
(const string& name,
int age,
int no)
:m_name
(name)
,m_age
(age)
,m_no
(no)
void
who(
void
)private
: string m_name;
int m_age;
int m_no;};
intmain
(void
)
#include
using
namespace std;
class
aint m_data;};
class
b a m_a;};
intmain
(void
)
#include
using
namespace std;
class
employee
void
calsalary
(void
)public
:void
setid
(int id)
void
setname
(const string& name)
void
setsalary
(double salary)
private
:int m_id;
//工號
string m_name;
//姓名
double m_salary;
//工資};
intmain()
C 類和物件 類和物件
c 中物件的型別稱為類,類代表了某一批物件的共性和特徵,類是物件的抽象,而物件是類的具體例項,類是抽象的,不占用記憶體,而物件是具體的,占用 儲存空間,這點很重要,讀者需要牢記。類是使用者自己指定的型別,如果程式中要用到類型別,必須自己根據需要進行宣告,或者使用別人已設計好的類,c 標準本身並不提供...
C 物件和類
1,特殊的類 字串string include include using namespace std int main 類似於標準庫函式,我們不需要記住每種 類 的全部操作,只需要在使用過程中記住一些常用的操作就可以了。如果有需要的話,可以求助於相關書籍或網路 2,當我們對string進行種種操作...
C (類和物件)
類成員函式 類的成員函式指標那些把定義和原型寫在類定義內部的函式,就想類定義中的其他變數一樣。類訪問修飾符 類成員可以定義為public,private或protected。預設情況下是定義為private。建構函式 類的建構函式是一種特殊的函式,在建立乙個新物件是呼叫。析構函式 類的析構函式也是一...