C++ 知识要点

1.类与对象
类是事物的抽象。类的对象就是类的具体化,实际化

2.C++三大特性
继承、封装、多态

3.C++父类与子类继承过程中,子类的特点?
子类拥有父类的所有属性和行为
子类就是一种特殊的父类
子类对象可以当作父类对象使用
子类中可以添加父类没有的方法和属性

4.C++过程中多态是怎么实现的?
1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。
2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。
3:多态性是一个接口多种实现,是面向对象的核心,分为类的多态性和函数的多态性。
4:多态用虚函数来实现,结合动态绑定.
5:纯虚函数是虚函数再加上 = 0;
6:抽象类是指包括至少一个纯虚函数的类。
纯虚函数:virtual void fun()=0;即抽象类!必须在子类实现这个函数,即先有名称,没有内容,在派生类实现内容。

5.C++多态的实现方式有几种?
第一种是函数重载;第二种是模板函数;第三种是虚函数
(1)静态多态(重载,模板)
是在编译的时候,就确定调用函数的类型。
(2)动态多态(覆盖,虚函数实现)
在运行的时候,才确定调用的是哪个函数,动态绑定。运行基类指针指向派生类的对象,并调用派生类的函数。
虚函数实现原理:虚函数表和虚函数指针。
纯虚函数: virtual int fun() = 0;

6.C++多态的作用
(游戏程序实例)在面向对象的程序设计中,使用多态能够增强程序的可扩充性,即程序需要修改或增加功能时,只需改动或增加较少的代码

7.继承的作用
1、继承可以减少重复的代码。比如父类已经提供的方法,子类可以直接使用,不必再去实现。
2、继承是多态性的前提。当然使用继承的同时也提高了类的耦合度

8.继承实现的方式
C++继承的一般语法为:
class 派生类名:[继承方式] 基类名{
派生类新增加的成员
};

9.什么是派生类?
派生类应该是指子类的子类
子类是指直接继承基类的类;
其中子类也是派生类,但是派生类一般是指子类的子类、孙子类、曾孙子类等等

10.C++中支不支持多重继承?
支持
1,一个子类可以拥有多个父类;
2,子类拥有所有父类的成员变量;
3,子类继承所有父类的成员函数;
4,子类对象可以当作任意父类对象使用
class C:public A, public B{
};

11.继承权限问题
public、protected、private 指定继承方式
不同的继承方式会影响基类成员在派生类中的访问权限。

  1. public继承方式
    基类中所有 public 成员在派生类中为 public 属性;
    基类中所有 protected 成员在派生类中为 protected 属性;
    基类中所有 private 成员在派生类中不能使用。

  2. protected继承方式
    基类中的所有 public 成员在派生类中为 protected 属性;
    基类中的所有 protected 成员在派生类中为 protected 属性;
    基类中的所有 private 成员在派生类中不能使用。

  3. private继承方式
    基类中的所有 public 成员在派生类中均为 private 属性;
    基类中的所有 protected 成员在派生类中均为 private 属性;
    基类中的所有 private 成员在派生类中不能使用。

12.C语言和C++的区别
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

13. C++封装
数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽象是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制。
C++ 通过创建类来支持封装和数据隐藏(public、protected、private)。我们已经知道,类包含私有成员(private)、保护成员(protected)和公有成员(public)成员。

输入学号,输出学号的后三位,并输出并求出0到后三位之前数的和

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

int main() {
	char s[20];
	cin>>s;
	int len=strlen(s);
	int num=0;
	for(int i=len-3; i<=len-1; i++) {
		num*=10;
		num+=s[i]-'0';
	}
	cout<<num<<endl;
	if(num%2==0)
		cout<<(num/2)*(num+1)<<endl;
	else {
		cout<<(num/2)*(num+1)+(num/2+1)<<endl;
	}

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值