日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++类的基本学习知识

發布時間:2024/9/21 c/c++ 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++类的基本学习知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面對對象:將系統看成對象的集合,對象之間通過交互作用來完成系統特定功能;
面對對象編程的特點:繼承、封裝、多態;
進入主題:
1.類的聲明
class 類名稱{
public:
公有成員(外部接口,允許來自類外的訪問)
private:
私有成員(只允許本類的函數訪問,類外部的任何函數不能訪問)
protected:
保護成員(與private類似,差別表現在繼承與派生)
}
2.成員函數
demo1.cpp

#include<iostream> using namespace std; class Test{ public:int x_;void init(int x,int y,int z);void display(){cout<<x_<<endl;}; private:int y_; protected:int z_; }; void Test::init(int x,int y,int z){x_=x;y_=y;z_=z; } int main(){Test t;t.init(1,2,3);t.display();return 0; }

類內實現成員函數叫做內聯函數:如display();
類外實現成員函數:Test::init()
標準寫法:Test.h-放類的聲明
Test.cpp-放類的定義
main.cpp-主函數
3.class VS struct
class數據成員默認私有
struct數據成員默認公有
demo2.cpp

#include<iostream> using namespace std; class Test{int x_;int y_;int z_; }; struct Test1{int x_;int y_;int z_;void initXYZ(int x,int y,int z){x_=x;y_=y;z_=z;} }; int main(){Test t1;Test1 t2;//t1.x_=5;私有成員,必須通過成員函數來進行訪問t2.x_=5;t2.initXYZ(6,7,8);cout<<sizeof(t1)<<endl;cout<<sizeof(t2)<<endl;system("pause");return 0; }

輸出結構一致,都為12;對象大小與成員函數無關,只與成員變量有關;
當加入一個char成員時,結果變為16,類遵循字對齊
4.對象的存儲模型
this 指針的作用:成員方法是共享的,怎么辨別是哪個對象調用的方法?
this指針保存調用方法對象的地址
5.類的作用域
前項聲明:可以只聲明而不定義它。這個聲明有時被稱為前向聲明。在聲明之后,定義之前,類是一個不完全類型,即只知是一個類,但不知道類中具體包含哪些成員。不完全類型只能以有限方式使用,不能實例化,只能用于定義指向該類型的指針及引用,或者用于聲明使用該類型作為形參類型或者返回類型的函數。

class A; class B{public:A* m_a;//不能用A m_a }#include "A.h" class B{public:A* m_a;//(或者A m_a) }

前向聲明的好處是:
不必要的#include 會增加編譯時間.
混亂隨意的#include可能導致循環#include,可能編譯錯誤;
6.嵌套和局部類
從作用域看,嵌套類被隱藏在外圍類之中,只能在外圍類中使用。如果在外圍類的作用域使用時,需要加名字限定。
嵌套類中的成員函數可以在它的類體外定義
嵌套類的成員函數對外圍類沒有訪問權,反之亦然
嵌套類僅僅是語法上的嵌入
demo4.c

#include<iostream> using namespace std; class Test{ public:int x_;class Inner{public:int num;void func()}; }; void Test::Inner::func(){cout<<"hello world!"<<endl; } int main(){class LocalClass//局部類{void func(){}};Test t;Test::Inner n;//定義嵌套類對象t.x_==1;cout<<t.x_<<endl;n.num=2;//訪問嵌套類的成員cout<<n.num<<endl;n.func();//訪問嵌套類的成員方法return 0; }

7.局部類
定義在函數體內的類為局部類,只在定義它的局部域可見。局部類的成員函數不惜被定義在類體中。
局部類中不能有靜態成員。

總結

以上是生活随笔為你收集整理的C++类的基本学习知识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。