真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++——類的引入和定義-創(chuàng)新互聯(lián)

一、類的引入
struct student
{char name[20];
	int age;

};

上面一段代碼是在C語言中結(jié)構(gòu)體的定義,我們知道在C語言中的結(jié)構(gòu)體只能定義變量,但是可不可以在結(jié)構(gòu)體中定義函數(shù)呢?
答案是在C語言中不可以,但是在C++中可以,在C++中,結(jié)構(gòu)體不僅可以定義變量我,也可以定義函數(shù)。
舉個例子:

成都創(chuàng)新互聯(lián)主營綏中網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機APP定制開發(fā),綏中h5微信小程序開發(fā)搭建,綏中網(wǎng)站營銷推廣歡迎綏中等地區(qū)企業(yè)咨詢

在C語言中實現(xiàn)棧:

Stack.h

typedef int STDataType;
#define N 10
typedef struct Stack
{STDataType _a[N];
int _top; // 棧頂
}Stack;
// 支持動態(tài)增長的棧
typedef int STDataType;
typedef struct Stack
{STDataType* _a;
int _top; // 棧頂
int _capacity; // 容量
}Stack;

// 初始化棧
void StackInit(Stack* ps);
// 入棧
void StackPush(Stack* ps, STDataType data);
// 出棧
void StackPop(Stack* ps);
// 獲取棧頂元素
STDataType StackTop(Stack* ps);
// 獲取棧中有效元素個數(shù)
int StackSize(Stack* ps);
// 檢測棧是否為空,如果為空返回非零結(jié)果,如果不為空返回0
int StackEmpty(Stack* ps);
// 銷毀棧
void StackDestroy(Stack* ps);

Stack.c

// 初始化棧
void StackInit(Stack* ps)
{//....
}
// 入棧
void StackPush(Stack* ps, STDataType data)
{//....
}
// 出棧
void StackPop(Stack* ps)
{//....
}
// 獲取棧頂元素
STDataType StackTop(Stack* ps)
{//....
}
// 獲取棧中有效元素個數(shù)
int StackSize(Stack* ps)
{//....
}
// 檢測棧是否為空,如果為空返回非零結(jié)果,如果不為空返回0
int StackEmpty(Stack* ps)
{//....
}
// 銷毀棧
void StackDestroy(Stack* ps)
{//....
}

main.c

Stack s;
StackInit(&s);
StackPush(&s,1);
StackPush(&s,2);
StackPush(&s,3);
//....

在C++中實現(xiàn)棧

```cpp
#includeusing namespace std;

typedef int DataType;
struct Stack
{void Init(size_t capacity)
	{_array = (DataType*)malloc(sizeof(DataType) * capacity);
		//空間檢查
		if (nullptr==_array)
		{	perror("malloc申請空間失敗");
			return;
		}
		_capacity = capacity;    //更新空間容量
		_size = 0;               //將元素個數(shù)置為0
	}

	//元素入棧
	void Push(const DataType& data)
	{//擴容
		_array[_size] = data;
		++_size;
	}

	//棧頂元素
	DataType Top()
	{return _array[_size - 1];
	}

	//棧的銷毀
	void Destory()
	{if (_array)
		{	free(_array);  //釋放空間
			_array = nullptr; //棧頂?shù)刂分脼榭罩羔?			_capacity = 0;
			_size = 0;
		}
	}

	DataType* _array;   //棧的地址
	size_t _capacity;   //棧的空間大小
	size_t _size;       //棧的元素的個數(shù)
};
int main()
{Stack s;
	s.Init(10);
	s.Push(1);
	s.Push(2);
	s.Push(3);
	s.Destory();

	return 0;
}

在C++中,結(jié)構(gòu)體的定義更偏向于用class來代替struct。

二、類的定義

類定義的一般形式:

class classname
{//成員函數(shù)+成員變量=類體
};//注意這里的分號不能省略

class為定義類的關(guān)鍵字,ClassName為類的名字,{}中為類的主體,注意類定義結(jié)束時后面分號不能省略。
類體中內(nèi)容稱為類的成員:類中的變量稱為類的屬性或成員變量; 類中的函數(shù)稱為類的方法或者成員函數(shù)。

類的兩種定義方式:

1、聲明和定義全部放在類體中,需注意:成員函數(shù)如果在類中定義,編譯器可能會將其當成內(nèi)聯(lián)函數(shù)處理。

//聲明和定義全放在類體中

class person
{public:
	
	//個人基本信息
	void showinfo()
	{cout<< _name<< "-"<< _sex<< "-"<< _age<< endl;
	}

private:
	char* _name;  //姓名
	char* _sex;   //性別
	int   _age;   //年齡

};

2、類聲明放在.h文件中,成員函數(shù)定義放在.cpp文件中,注意:成員函數(shù)名前需要加類名。

person.h

class person
{public:
	//顯示個人信息
	void showInfo();
private:
	char* _name;  //姓名
	char* _sex;   //性別
	int   _age;   //年齡
};

peson.cpp

#include"person.h"  //頭文件的引用

void person::showInfo()      //成員函數(shù)前需要用加類名和域限定符
{cout<< _name<< "-"<< _sex<< "-"<< _age<< endl;
}

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


網(wǎng)頁題目:C++——類的引入和定義-創(chuàng)新互聯(lián)
分享鏈接:http://weahome.cn/article/hojeh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部