C++概念类问题

C++的三大特性

·封装性

把客观事物封装成抽象的类,自己类的数据和方法可以设置不同的权限让可信的对象操作,最终以接口的形式来访问类中的数据,数据不直接对外界开放

class a
{
public:
	a();
	~a();
	void show();
private:
	int m_a;
protected:
	int m_b;
}

·继承性

继承性是在原有的代码基础上进行复用与拓展,这样产生的类是派生类。继承有三种方式,可以根据不同的继承方式对父类的数据进行使用。但是实际上默认的继承方式是私有继承,项目工程中使用的是公有继承,受保护继承和私有继承的复杂程度远大于他实现的价值。

class base
{
public:
	base();
	~base();
	void fun1();
private:
	int m_a;
protected:
	int m_b;
}

class clild1 : public base
{
public:
	child1();
	~chlid1();
	void fun2()
	{
		base::fun1();
	}
}

关于子类继承的的关系可以看下图,例如子类继承父类用的是public方式,父类的private类型子类还是不可见的,protected和public子类可见,而且在子类中继承数据的类型也发生了改变。
image

·多态性

C++的多态性可以分为动态多态性静态多态性

  1. 动态联编(运行时多态)
    重写:同名函数相同参数裂变与返回值,只有函数的实现不同。
    实现:存在虚函数的基类,派生类必须对该虚函数进行重写。
    虚函数的机制后期可以单开一个随笔写出来。
  2. 静态联编(编译时多态)
    函数重载:两个函数在相同的作用域,函数名相同,参数列表不同,不关心返回值。(系统会在编译的时候通过函数名与参数列表确认需要用到的具体函数是哪一个,所平常叫做编译时多态)
int fun1();
float fun1(int a);
int fun1(int a, char b);
posted @ 2022-06-24 17:34  未全知  阅读(47)  评论(0)    收藏  举报