C 2 類與物件(上)

2021-09-24 05:41:24 字數 1831 閱讀 9614

class classname

: //分號不能省略

一般情況下,將宣告放在.**件中,類的定義放在,cpp檔案中class.h

#pragma once

class

family

;

class.cpp

#define _crt_secure_no_warnings

#include

"class.h"

#include

#include

using

namespace std;

void family::

insertnember

(char

* name,

char

* gender,

int age)

void family::

showinfo()

intmain()

通過使用訪問限定符,通過訪問許可權選擇性的將其介面供給外部的使用者使用class的預設訪問許可權為private,struct為public(因為struct要相容c)

q:c++中class和struct和區別是什麼?

a:c++需要相容c語言,所以c++中的struct可以定義結構體也可以定義類,struct定義出來的類成員

訪問方式預設是public,而class定義出的預設訪問方式是private

隱藏物件的具體屬性和具體實現的細節,僅對外展示公開介面和物件互動

乙個類的大小實際就是成員變數大小的和,也滿足結構體內存對齊規則,空類也要占用乙個位元組來進行標識這個類

空類乙個位元組(主流編譯器)相當於佔位符,區分該類建立的不同物件如果有3個物件,也是空類,佔乙個位元組,三個物件存放在main函式中,占用三個位元組

q:在呼叫成員函式的時候,編譯器是如何得知呼叫的就是當前物件而不是其他物件呢?

a:c++編譯器給每個"成員函式"都增加了乙個隱藏的指標函式,該指標指向當前物件,這個操作對於用

戶是透明的,編譯器自動完成

this指標的型別是類型別* const

只能在"成員函式"的內部使用

this指標本質是乙個成員函式的形參,物件呼叫成員函式時,將物件位址作為實參傳遞給this指標

this指標的傳遞由ecx暫存器自動傳遞

q:this指標存在**?

a:ecx暫存器中(編譯器不同可能結果不同)

q:this指標可以為空嗎?

a:可以,this傳入的函式如果不呼叫任何函式,不會報錯,如果函式內部呼叫this指向物件,那麼

this如果為空,就會報錯

C (2)類與物件簡介(B)

目錄 五 類的組合 六 結構體與聯合體 結構體聯合體 七 列舉類 列舉型別 列舉類八 uml簡介 九 一些細節 將類物件作為其他類的成員稱為組合,從已有的類派生出新類稱為繼承 1.建構函式設計 原則 對本類中的基本型別成員資料以及物件成員均要初始化 語法形式 類名 類名 物件成員所需的形參,本類成員...

C 類與物件(上)

類與物件 在現實生活中有很多的東西,例如動物植物昆蟲等,他們都有自己的屬性與特點,例如年齡外貌體積等,人們通過歸納總結,把他們的特點記錄下來,然後就根據這些特點來確定乙個物體到底屬於什麼 類似的在c 世界裡,我們先設定乙個類再用類來產生東西,也就是例項。c語言是面向過程的,關注的是過程,分析出求解問...

C 類與物件 上

類的引入 c語言中,結構體中只能定義變數,在c 中,結構體內不僅可以定義變數,也可以定義函式 include using std cout using std endl struct date int year int month int day int main 輸出結果為 2019 5 7 注意...