您好,欢迎来到一二三四网。
搜索
您的当前位置:首页C++类(1)

C++类(1)

来源:一二三四网

一、面向过程与面向对象的初步认识

C语言是面向过程的,关注的是过程,分析出问题的步骤,通过函数调用逐步解决问题。

C++是面向对象的,关注的是对象,将一件事拆分成不同的对象,靠对象之间的交互完成。

二、类的引入

在C语言中,结构体只能定义变量,但在C++中结构体不仅仅能定义变量,它还可以定义函数。

例如:在C语言中实现栈,在结构体中只能定义变量。但在C++中便可以在结构体中直接定义函数,更加容易区分。如:

#include<iostream>
#include<assert.h>
using namespace std;
struct Stack
{

	void Init()
	{
		a = nullptr;
		size = capacity = 0;
	}
	void Push(int x)
	{
		if (capacity == size)
		{
			int newcapacity = capacity == 0 ? 4 : capacity * 2;
			int* tmp = (int*)realloc(a, sizeof(int) * newcapacity);	
			if (tmp == nullptr)
			{
				perror("realloc fail\n");
				exit(-1);
			}
			a = tmp;
			capacity = newcapacity;
		}
		a[size++] = x;
	}
	void Pop()
	{
		size--;
	}
	int Top()
	{
		return a[size - 1];
	}
	void Destory()
	{
		free(a);
		a = nullptr;
		size = capacity = 0;
	}

	int* a;
	int size;
	int capacity;
};

int main()
{
	Stack st;
	st.Init();
	st.Push(1);
	st.Push(2);
	st.Push(3);
	st.Push(4);
	st.Pop();
	cout << st.Top() <<  endl;
	st.Destory();
	return 0;
}

但是在C++中更喜欢用class定义类

三、类的定义

class classname
{
	//成员函数或成员变量
};

类有两种定义方法:

4.1封装

封装是指将数据和操作数据的方法放在一起,隐藏对象的属性和实现细节,仅对外公开接口和对象交互。在C++中就是,通过访问权限来隐藏对象内部的实现细节,控制那些方法可以在外部使用。

封装本质上就是一种管理,让用户更方便的使用类。

4.2访问限定符

在C++中,类一共有三个访问限定符,分别是:public、private、protected

访问限定符的说明

  1. public修饰的成员可以在类外进行访问
  2. protected和priva修饰的成员在类外不能直接被访问到
  3. 访问权限的作用域是从该访问限定符出现的位置开始到下一个访问限定符结束。如果后面没有访问限定符,作用域就到类的结束
  4. class的默认访问权限是private

C++中class和struct的相同点:

由于C++需要兼容C语言,所有的C++中struct是可以当结构体使用的,还可以用来定义类,和class定义类是一样的。

C++中class和struct的不同点:

class的默认访问权限是private而struct的默认访问权限是public

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- howto1234.net 版权所有 湘ICP备2023021910号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务