C 學習 類和物件 2

2021-08-26 16:41:24 字數 2075 閱讀 8467

類(class)

是c++物件導向程式設計的核心,它是實現抽象型別的工具。類是通過抽象資料型別的方法來實現的一種資料型別。類是對某一類物件的抽象,而物件是某一種類的例項。

本文稍微說一下類和物件的基本使用,比較簡單也是最基本的c++基礎。

一. 類

類的定義有2個部分:宣告部分和實現部分。

宣告部分:用來宣告類中的資料成員和成員函式(方法)。 ->告訴使用者"幹什麼?"。

實現部分:用來對成員函式的定義。 ->告訴使用者"怎麼幹"。

二. 類的關鍵字

1.public

公有成員,在程式的任何地方都可以被訪問。

2.private

私有成員,只能被成員函式和類的友元訪問。

3.protected

保護成員,用於繼承中。

三. 類的宣告

下面只提供最簡單的類宣告,因為乙個真正的類,還會涉及到很多性質或者特點。

本實驗是在code::blocks工具中進行的,為了規範性,這裡總共建立了3個原始檔:main.cpp test1.cpp test1.h

main.cpp: 主程式

test1.cpp: test1.h標頭檔案中的類的定義

test1.h: 類的宣告

#ifndef test1_h_included #define test1_h_included class canimal ; #endif // test1_h_included

四. 類的定義

當類的成員函式的函式體在類的外部定義時,必須由作用域運算子"::"來通知編譯系統該函式所屬的類。

#include "test1.h" int canimal::getage() void canimal::addage() void canimal::setage(int age)

五. 物件的定義

canimal類的概念已經建立出來,現在就要例項化出乙隻動物,這裡就用阿貓阿狗來舉例。以下用2種方式來例項化物件:

1.canimal dog; //建立出了乙隻dog

2.canimal *cat = new canimal; //動態建立了乙隻cat

以下貼出使用dog和cat的具體操作:

#include #include "test1.h" using namespace std; int main()

六. 程式執行結果

dog is 12 years old. after one year. dog is 13 years old. cat is 12 years old. after one year. cat is 13 years old.

七. c++中class與struct的區別

在c++物件導向語言中,class和struct的功能很相似,struct也是一種類。

區別:乙個struct也是乙個class,但是struct的預設方式是公用部分,而class的預設方式是私用部分。

以下使用**說明,下面的class與struct是等價的:

class: class canimal ; <=> struct: struct canimal ;

八. 為什麼類的定義以分號結束

這是什麼問題?有人說我很無聊。

其實並不單單類的定義要以分號結束,c++中的struct也要以分號結束。原因很簡單,因為咱們的使用習慣,或者說是編譯器編譯程式要考慮的情況,在定義之後,可以接乙個物件的定義列表,理所當然要以分號結束。

看幾個簡單的例子:

1.class

class canimal dog, cat;

2.struct

struct canimal dog, cat;

3.int a, b, c; //o(∩_∩)o哈哈~

本博文是非常基礎的,由簡單循序漸進到複雜,這樣才能培養出興趣與恆心!

C 學習 類和物件 2

類 class 是c 物件導向程式設計的核心,它是實現抽象型別的工具。類是通過抽象資料型別的方法來實現的一種資料型別。類是對某一類物件的抽象,而物件是某一種類的例項。本文稍微說一下類和物件的基本使用,比較簡單也是最基本的c 基礎。一.類 類的定義有2個部分 宣告部分和實現部分。宣告部分 用來宣告類中...

c 類和物件 2

1 設計類就是設計型別 1 我們給這個賦予什麼合法值。2 類中包含什麼樣的函式和操作符。3 新型別的物件該如何被建立和銷毀。4 物件的初始化和賦值。5 物件作為函式的引數如何以值傳遞。6 誰使用此型別的物件成員。private 私有成員,只允許本類中的函式訪問,而類外部的任何函式都不能訪問。如果緊跟...

C 類和物件(2)

如果乙個類中什麼成員都沒有,就稱該類為空類,但是空類中並不是什麼都沒有,任何乙個類在我們不寫的情況下,都會自動生成6個預設成員函式。class student 建構函式雖然叫做構造,但是並不是構造物件,而是完成初始化工作。class date void print private int year ...