当前位置:   article > 正文

C++自动驾驶岗面试准备_自动驾驶面试代码怎么写

自动驾驶面试代码怎么写

一、C++的三大特性

1 封装

封装
封装的意义
封装是C++面向对象的三大特征之一

封装的意义:

将属性和行为作为一个整体,表现生活中的事物
类中的属性和行为,我们统称为成员

属性-成员属性-成员变量

行为-成员函数-成员方法

封装的意义二
类在设计时,可以把属性和行为放在不同的权限下,加以控制

访问权限有三种

public——公共权限——成员类内可以访问,类外可以访问
protected–保护权限——成员类内可以访问,类外不可以访问
private——私有权限——成员类内可以访问,类外不可以访问

2 继承

2.1 概念

继承
继承是面向对象三大特性之一
子类可以继承或拥有父类的所有内容
普通实现:

#include<iostream>
#include<string>
using namespace std;

//普通实现页面

//java页面
class Java
{
public:
	void header()
	{
		cout << "首页、登录注册" << endl;
	}
	void footer()
	{
		cout << "帮助中心、交流合作" << endl;
	}
	void left()
	{
		cout << "java、python、c++" << endl;

	}
	void contenet()
	{
		cout << "java学科视频" << endl;
	}
};
class Python
{
public:
	void header()
	{
		cout << "首页、登录注册" << endl;
	}
	void footer()
	{
		cout << "帮助中心、交流合作" << endl;
	}
	void left()
	{
		cout << "java、python、c++" << endl;

	}
	void contenet()
	{
		cout << "python学科视频" << endl;
	}
};
class Cpp
{
public:
	void header()
	{
		cout << "首页、登录注册" << endl;
	}
	void footer()
	{
		cout << "帮助中心、交流合作" << endl;
	}
	void left()
	{
		cout << "java、python、c++" << endl;

	}
	void contenet()
	{
		cout << "c++学科视频" << endl;
	}
};
void test()
{
	cout << "java" << endl;
	Java java;
	java.header();
	java.footer();
	java.left();
	java.contenet();

	cout << endl;

	cout << "python" << endl;
	Python python;
	python.header();
	python.footer();
	python.left();
	python.contenet();

	cout << endl;

	cout << "cpp" << endl;
	Cpp cpp;
	cpp.header();
	cpp.footer();
	cpp.left();
	cpp.contenet();
}
int main(void)
{
	test();
	system("pause");
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103

继承方法实现

#include<iostream>
#include<string>
using namespace std;

//公共页面
class BasePage
{
public:
	void header()
	{
		cout << "首页、登录注册" << endl;
	}
	void footer()
	{
		cout << "帮助中心、交流合作" << endl;
	}
	void left()
	{
		cout << "java、python、c++" << endl;

	}
};
//普通实现页面

//java页面
class Java : public BasePage
{
public:
	void contenet()
	{
		cout << "java学科视频" << endl;
	}
};
class Python : public BasePage
{
public:
	void contenet()
	{
		cout << "python学科视频" << endl;
	}
};
class Cpp : public BasePage
{
public:
	
	void contenet()
	{
		cout << "c++学科视频" << endl;
	}
};
void test()
{
	cout << "java" << endl;
	Java java;
	java.header();
	java.footer();
	java.left();
	java.contenet();

	cout << endl;

	cout << "python" << endl;
	Python python;
	python.header();
	python.footer();
	python.left();
	python.contenet();

	cout << endl;

	cout << "cpp" << endl;
	Cpp cpp;
	cpp.header();
	cpp.footer();
	cpp.left();
	cpp.contenet();
}
int main(void)
{
	test();
	system("pause");
	return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84

总结:
继承的好处:减少重复代码

语法:class 子类:继承方式 父类

子类也称派生类

父类也称基类

派生类中的成员,包含量大部分

一类是从基类继承过来的,一类是自己增加的成员。

从基类继承过来的表现其共性,而新增加的成员体现其个性。

继承方式
继承的语法——class 子类 :继承方式 父类

3 多态

3.1 多态的概念

多带的概念主要是:通俗的说就是,多种形态。具体的说就是当不同的对象去完成时,会产生不同的状态效果。
例如:买火车票这个行为,当普通人买票时,是全价买票;当学生买票时,是半价买票,当是军人等时,是优先买票。

3.2 多态的定义及实现

3.2.1 重写/覆盖 的要求

重写或覆盖:是返回值、函数名、参数列表完全相同。
子类中有一个跟父类完全相同的虚函数,子类的虚函数重写了基类的虚函数

注意:重载:重载是函数名相同,而参数列表不同为重载。包括参数的类型、参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同。不能以返回值不同为重载。

3.2.2 多态的两个要求

1.被调用的函数必须是虚函数,子类对父类的虚函数进行重写 (重写:三同(函数名/参数/返回值)+虚函数)
2、父类指针或者引用去调用虚函数。

注释:
虚函数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/919542
推荐阅读
相关标签
  

闽ICP备14008679号