今天學習了類的概述和寫類的基本框架
在嗶哩嗶哩學習的這個老師的C++面向對象高級語言程序設計教程(118集全)講的很不錯(真的!!!),C語言也是在這個老師的帶領下學習的
#include<iostream>
using namespace std;//類的概述(了解)
//1.類的封裝將數據和方法封裝在一起,加以權限區分,用戶只能通過公共方法訪問私有數據
//2.定義一個結構體用來表示一個對象所包含的屬性,函數用來表示一個對象所具有的行為,這樣我們就可以表示出來一個十五,在C++語言中,行為和屬性是封裝的
//3.封裝與結構體的區別:一個是將屬性和變量和成一個整體,一個是給屬性和函數增加訪問權限
/*4.權限(權限只是針對類的外部,類的內部沒有區分):
*private私有:類外部不可以直接訪問私有數據,類內部可以訪問
* protected保護:類外部不可以直接訪問私有數據,類內部可以訪問
* public公有:類外部可以訪問,類內部可以訪問
*/
//5.class關鍵字(類的定義,此時同結構體一樣系統還沒有為它分配空間)有分號!!!!
class Data1 {
private:int a;
protected:int b;
public:int c;void data_show(void) {//類的內部可以直接訪問,沒有權限區分cout << a << ", " << b << ", " << c << endl;}
};//同結構體一樣有分號!!!!!
void test01() {//類是不占空間的,只有用類實例化對象(用類定義變量)的時候,系統為對象(變量)開辟空間//定義類的時候盡量不要給成員賦值//類中的數據成員擁有獨立的空間Data1 ob;//使用Data實例化一個對象名為ob的對象//成員數據依賴于對象//cout << "ob.a = " << ob.a << endl;//類的外部不可以訪問私有和保護的對象//ob1.data_show;//對象通過公共方法間接調用私有數據
}//類的成員函數類中申明,類外定義
class Data2 {//不加屬性,默認為私有int a;
public:void setA(int v);int getA(void);
};
void Data2::setA(int v) {a = v;
}
int Data2::getA(void) {return a;
}
void test02() {Data2 ob;ob.setA(100);cout << "a = " << ob.getA() << endl;
}
int main(int argc,char *argv[]){test02();return 0;
}