北航2022计算机软件基础期末C++复(预)习


写在前面

这篇文章只是为了帮助大家应付考试中C++的内容,学不到什么真正的知识,内容也只是根据12-14三年的期末试题来写。数据结构的内容可以看我其他的博客。


提示:以下是本篇文章正文内容

一、C++最基础的知识

C++是C语言的提升,C的内容在C++内规则完全不变。

#include <iostream> //包含io流,即输入输出流,相当于C语言里的stdio.h
using namespace std //展开命名空间,之后使用一些已经定义的关键字如cout,endl时可以直接用
class X //定义一个类,名字是X,相当与C语言里的结构体
cout //C++中的输出流,即在屏幕上打印内容,相当于C语言中的printf
endl //C++中的回车,相当于C语言中的'\n'
cout << "hello world!" << endl;//在屏幕上打印hello world!
new //相当于C语言中的malloc,用于动态开辟内存

二、关于继承

1.定义格式

代码如下(示例):

class A : public B //类A继承了类B,A内含有B内的所有内容,A是子类,public是继承方式,B是基类

2.继承关系和访问限定符

class内的成员什么访问限定福都不加时,默认是private。
在这里插入图片描述
在这里插入图片描述
实际上面的表格总结会发现,基类的私有成员在子类都是不可见的,也不可访问。基类的其他成员在子类的访问方式 == Min(成员在基类的访问限定符,继承方式),public > protected > private。下面以往年题为例分析。


3.同名函数的隐藏

子类和父类中有同名成员,子类成员将屏蔽父类对同名成员的直接访问,这种情况叫隐藏,也叫重定义。(在子类成员函数中,可以使用 基类::基类成员 显示访问)


4.切片

派生类对象可以赋值给基类的对象/基类的指针。这里有个形象的说法叫切片。即把派生类中父类那部分切来赋值过去,而派生类多出来的东西不管。
在这里插入图片描述
Person是基类,Student是子类,将Student类型的变量赋值给Person后,Student中多出来的_No内容被丢掉不管。


三、往年题

1. 2012年

在这里插入图片描述
最后,由于Car中的velocity是protected,而继承方式是公有,所以显然可以在类内访问它(在类外不可以访问)。


2. 2013年

2013年的第一个题考了构造和析构的顺序,我之前的博客中有讲到,下面详细说第二道题。
在这里插入图片描述


3. 2014年

2014年的题偷个懒,给大家练手吧。


四、2022年计软C++编程题

(这部分的代码是我根据记忆写的,但是virtual这个考点是确定的)

class vehicle
{
public:
	int color;

	void SetColor(int c)
	{
		color = c;
	}
	//virtual void run()
	void run()
	{
		cout << "vehicle running!" << endl;
	}
private:
	int number;
};

class car : public vehicle
{
protected:
	int velocity;
public:
	void run()
	{
		cout << "car running!" << endl;
	}
};

class SportsCar : public car
{
public:
	void run()
	{
		cout << "SportsCar running!" << endl;
	}
};

int main()
{
	vehicle* vec;
	vec = new car;
	vec->run();
	delete vec;
	
	vec = new SportsCar;
	vec->run();
	delete vec;

	SportsCar sc;

	return 0;
}

(1)运行结果:很简单,和之前的题一样,答案是
vehicle running!
vehicle running!
(2)若vehicle里的run函数前面加一个virtual(如代码中注释所示)则运行结果如何
加上virtual后,vec就不调用vehicle里的run,而是分别调用car类和SportsCar类里的run函数,所以结果是
car running!
SportsCar running!
(3)sc对象能访问哪些成员变量:
同往年题,答案是velocity


写在最后

计软背不下来又不想摸鱼,写篇博客帮助大家考前学习C++。文章是我匆忙赶出来的,难免有些纰漏,请多包涵,希望能帮到大家。

最后,感谢阅读。

  • 35
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值