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 注意...