欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

【C++學(xué)習(xí)】List4.1類(lèi)和對(duì)象——封裝-創(chuàng)新互聯(lián)

  • C++面向?qū)ο蟮娜筇匦詾椋?mark>封裝、繼承、多態(tài)
  • C++認(rèn)為萬(wàn)事萬(wàn)物都皆為對(duì)象,對(duì)象上有其屬性和行為
1.封裝

1.封裝的意義
封裝時(shí)C++面向?qū)ο笕筇匦灾?br />封裝的意義:

創(chuàng)新互聯(lián)建站-成都網(wǎng)站建設(shè)公司,專注成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷(xiāo)推廣,國(guó)際域名空間,虛擬空間,網(wǎng)站托管運(yùn)營(yíng)有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,請(qǐng)聯(lián)系創(chuàng)新互聯(lián)建站
  • 將屬性和行為作為一個(gè)整體,表現(xiàn)生活中的事物
  • 將屬性和行為加以權(quán)限控制

封裝的意義一:在設(shè)計(jì)類(lèi)的時(shí)候,屬性和行為寫(xiě)在一起,表現(xiàn)事物
語(yǔ)法:class 類(lèi)名{ 訪問(wèn)權(quán)限: 屬性 / 行為 }

示例1:設(shè)計(jì)一個(gè)圓類(lèi),求圓的的周長(zhǎng)

#includeusing namespace std;
const double PI = 3.14;

//設(shè)計(jì)一個(gè)圓類(lèi),求圓的周長(zhǎng)
//周長(zhǎng)公式:  2 * PI * 半徑

//class代表設(shè)計(jì)一個(gè)類(lèi),類(lèi)后緊跟著的就是類(lèi)名稱
class Circle
{//訪問(wèn)權(quán)限
	//公共權(quán)限
public:
	//屬性
	int circle_r;  //半徑

	//行為
	//獲取圓的周長(zhǎng)
	double caculateZC() {return 2 * PI * circle_r;
	}

};

int main() {//通過(guò)圓類(lèi) 創(chuàng)建具體的圓(對(duì)象)
	Circle cl;  //實(shí)例化:通過(guò)一個(gè)類(lèi)創(chuàng)建一個(gè)對(duì)象
	//給圓對(duì)象 的屬性進(jìn)行賦值
	cl.circle_r = 10;

	cout<< "圓的周長(zhǎng):"<< cl.caculateZC()<< endl;
	 
	return 0;

}

示例2:設(shè)計(jì)一個(gè)學(xué)生類(lèi),屬性有姓名和學(xué)號(hào),可以給姓名和學(xué)號(hào)賦值,可以顯示學(xué)生的姓名和學(xué)號(hào)

#includeusing namespace std;
const double PI = 3.14;

//

 //設(shè)計(jì)一個(gè)學(xué)生類(lèi),屬性有姓名和學(xué)號(hào),可以給姓名和學(xué)號(hào)賦值,可以顯示學(xué)生的姓名和學(xué)號(hào)
class Student
{//訪問(wèn)權(quán)限
public:  //公共權(quán)限

	//類(lèi)中的屬性和行為,我們統(tǒng)一稱為成員
	//屬性   成員屬性 成員變量
	//行為   成員函數(shù) 成員方法

	//屬性
	int number;  //學(xué)號(hào)
	string name; //姓名

	//行為
	//顯示姓名和學(xué)號(hào)
	void showStudent() {cout<< "姓名:"<< name<< endl;
		cout<< "學(xué)號(hào):"<< number<< endl;

	}

	//給姓名賦值
	void setName(string st_name) {name = st_name;
	}
	//給姓名賦值
	void setId(int id) {number = id;
	}

};

int main() { //創(chuàng)建一個(gè)具體學(xué)生,,,實(shí)例化
	Student st1;
	//給st對(duì)象,進(jìn)行屬性賦值操作
	st1.name = "小揚(yáng)";
	st1.number = 1001;

	//顯示學(xué)生信息
	st1.showStudent();

	Student st2;
	st2.name = "小凡";
	st2.number = 1002;

	st2.showStudent();

	Student st3;
	st3.setName("小宇");
	st3.setId(1003);

	st3.showStudent();

	 
	return 0;

}

封裝的意義二:類(lèi)在設(shè)計(jì)時(shí),可以把屬性和行為放在不同的權(quán)限下,加以控制
訪問(wèn)權(quán)限有三種:

  1. public 公共權(quán)限
  2. protected 保護(hù)權(quán)限
  3. private 私有權(quán)限
#includeusing namespace std;
 
//訪問(wèn)權(quán)限
//三種
//公共權(quán)限 public     成員 類(lèi)內(nèi)可以訪問(wèn)  類(lèi)外可以訪問(wèn)
//保護(hù)權(quán)限protected   成員 類(lèi)內(nèi)可以訪問(wèn)  類(lèi)外不可以訪問(wèn)  兒子可以訪問(wèn)父親中的保護(hù)內(nèi)容
//私有權(quán)限private     成員 類(lèi)內(nèi)可以訪問(wèn)  類(lèi)外不可以訪問(wèn)  兒子不可以訪問(wèn)父親的私有內(nèi)容

class Person
{public:
	//公共權(quán)限
	string m_name;
protected:
	//保護(hù)權(quán)限
	string m_car;

private:
	//私有權(quán)限
	int m_password;

public:
	void func() {m_name = "小劉";
		m_car = "奧迪";
		m_password = 123;

	}

};

int main() {//實(shí)例化具體對(duì)象
	Person p1;
	
	p1.m_name = "蛋蛋";
	//p1.m_car = "保時(shí)捷"; //保護(hù)權(quán)限的內(nèi)容,在類(lèi)外訪問(wèn)不到
	cout<< p1.m_name<< endl;
	
	p1.func();
	cout<< p1.m_name<< endl;

	 
	return 0;

}

2.struct和class 的區(qū)別

在C++中struct和class唯一的區(qū)別在于 默認(rèn)的訪問(wèn)權(quán)限不同
區(qū)別:

  • struct 默認(rèn)權(quán)限是 公共
  • class 默認(rèn)權(quán)限是 私有
#includeusing namespace std;
 
//struct 和class 區(qū)別
//struct 默認(rèn)權(quán)限是公共
//class 默認(rèn)權(quán)限是私有

class C1 {int m_A = 0; //默認(rèn)權(quán)限是 私有
};

struct C2 {int m_B = 1; //默認(rèn)權(quán)限是 公共
};

int main() {C1 c1;
	//cout<< c1.m_A<< endl;  //私有權(quán)限,不可訪問(wèn)
	C2 c2;
	cout<< c2.m_B<< endl;  //公共權(quán)限,可以訪問(wèn)

	 
	return 0;

}

3.成員屬性設(shè)置為私有
優(yōu)點(diǎn)1:將所有成員屬性設(shè)置為私有,可以自己控制讀寫(xiě)權(quán)限
優(yōu)點(diǎn)2:對(duì)于寫(xiě)權(quán)限,我們可以檢測(cè)數(shù)據(jù)的有效性

#includeusing namespace std;
 
//成員屬性設(shè)置為私有
//1.可以自己控制讀寫(xiě)全寫(xiě)
//2.對(duì)于寫(xiě)可以檢測(cè)數(shù)據(jù)的有效性


//設(shè)計(jì)人類(lèi)
class Person
{private:
	//姓名
	string name;
	//年齡
	int age = 18;
	//愛(ài)人
	string lover;


public:
	//設(shè)置姓名
	void setName(string pname) {name = pname;
	}
	//獲取姓名
	string getName() {return name;
	}
	void setAge(int page) {if (page< 0 || page>150) {	age = 0;
			cout<< "年齡有誤"<< endl;
			return;
		}
		age = page;

	}
	//獲取年齡
	int getAge() { 
		return age;
	}
	//獲取愛(ài)人
	string getLover() {lover = "小揚(yáng)";
		return lover;
	}
};

int main() {Person p;
	p.setName("小蛋");
	cout<< "姓名為:"<< p.getName()<< endl;
	p.setAge(200);
	cout<< "年齡為:"<< p.getAge()<< endl;
	cout<< "愛(ài)人為:"<< p.getLover()<< endl;
	 

	 
	return 0;

}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站標(biāo)題:【C++學(xué)習(xí)】List4.1類(lèi)和對(duì)象——封裝-創(chuàng)新互聯(lián)
鏈接分享:http://chinadenli.net/article48/dghsep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃軟件開(kāi)發(fā)網(wǎng)站制作用戶體驗(yàn)移動(dòng)網(wǎng)站建設(shè)全網(wǎng)營(yíng)銷(xiāo)推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作