c到c++(常问知识点的总结系列)

c++有更加丰富的内容和严格的类型检查,比如语法上多了一些东西,理念上多了面向对象(以对象为目标) 的思想,还有模版的概念。当然c++也可以面向过程编程。

C语言规定是先把变量定义完再定义函数,C++语言中可以随时定义变量,随用随定。

面向过程编程:程序=算法+数据结构

功能为基础,数据和对数据的操作分离,采用自顶向下的方式进行设计,用对应的程序模块解决每一个简单的子问题,在一定控制下,综合众多独立功能的模块组合为大模块。

优点:结构清晰,模块化强

缺点:代码维护性查,可重用性差,强依赖,牵一发动全身。

面向对象编程:程序=对象+消息 ,对象=数据+操作

数据为基础,数据和对数据的操作封装为类,数据本身对外隐藏,以类的对象作为程序的基本元素,通过向对象发消息,让对象启动相关的方法完成功能。

优点:提高代码维护性,可重用性,增加数据安全,可靠性强

类是抽象的,对象是具体的类的实例化,他们相互依存。类的属性叫类的数据成员,表示一类对象共有的静态特性,数据成员的行为叫成员函数,表示一类对象共有的动态特性。

类也是一种类型,该类型有数据成员,还有对数据成员的操作(成员函数)。类的对象就是属于类类型的变量而已。

类中的数据成员和成员函数的具体实现都被封装隐藏,只有成员函数的原型声明对外公布(接口),main函数只能通过类的对象调用类的接口函数,间接修改类的数据成员,而不能直接去修改数据成员(封装的体现)。

向对象发送同样的消息,可能指向不同的代码,产生不同的结果,这就是多态性

可以在已有类的基础上,再定义子类,增加一些新的属性和行为,这就是继承。

在定义新类时,把已有类的对象作为新类的数据成员,这叫类的聚合关系。

最好使用已有的类,面向对象提倡这样做,增加代码重用性,使得开发周期短,效率高

面向对象就是围绕对类的定义和使用展开的。

c++的类只在编译时期(源代码里)存在,不在内存里出现,类的实例(对象)和普通变量一样,会出现在内存,并占据空间。

面向对象三大特性:封装,继承,多态

封装:第一大特征,提供安全和可靠性。类不真正占用内存,封装的单位实际上是属于某个类的对象

继承:第二大特征,提供代码可重用性,继承使得基类(父类)的数据成员和成员函数被子类(派生类)重用,在子类里增加一些新成员函数和数据成员(改造),避免重复开发,减少代码量和冗余度。

继承的类别:单一继承和多重继承

单一继承:子类只从一个基类继承而来。

多重继承;子类同时从多个基类继承而来。

多态性:第三大特征,一种行为对应着多个不同的实现方法。

多态分两类:静态多态(编译时的多态,函数重载和运算符重载实现),动态多态(运行时多态,需要继承,虚函数,基类指针或者引用实现)

意义:用同一个接口实现不同操作

输入输出的变化及注释方式

有自己的输入输出流cout和cin,头文件不用.h,c++有自己的流类库,安全,方便,也兼容c的输入输出方式。

 1 #include <iostream>//必须包含,才能使用输入输出
 2 using namespace std;//必须包含std名字空间
 3 int main(void)
 4 {
 5     int a;
 6     cin >> a;//cin标准输入流,代表输入设备,后面只能跟变量,不用考虑数据类型
 7     //允许用户输入连串的数据依次给各个变量赋值,两个数据之间用空格、回车、tab键隔开
 8     //在输入字符串的时候尤其注意这点
 9     char s[100];
10     cin >> s;//此种方法不能读入含有空格的字符串
11     //使用cin.getline实现输入带空格的字符串
12     cin.getline(s,99);
13
14     cout << "a = " << a << endl;//cout标准输出流,代表输出设备,后面能跟常量,变量,表达式
15     //新增换行符endl,等价\n,还有刷新缓存的作用
16     return 0;
17 }

>>和<<都保留了c中的移位功能

新增了单行注释(标准c也有了)//

可以嵌套,嵌套//或者/**/都行,而/**/注释不能嵌套/**/,只可以嵌套//

时间: 2024-10-12 23:32:38

c到c++(常问知识点的总结系列)的相关文章

常问易混淆知识点(嵌入式)

b 一.知识点1 a) 关键字volatile在编译时有什么含义?并给出三个不同使用场景的例子(可以伪代码或者文字描述).b) C语言中static关键字的具体作用有哪些 ?c) 请问下面三种变量声明有何区别?请给出具体含义int const *p;int* const p;int const* const p; a) 用volatile关键字定义变量,相当于告诉编译器,这个变量的值会随时发生变化,每次使用时都需要去内存里 重新读取它的值,并不要随意针对它作优化. 建议使用volatile变量的

2014年软考程序员-常考知识点复习笔记【第三章】

51CTO学院,在软考备考季特别整理了"2014年软考程序员-常考知识点复习笔记[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考程序员-常考知识点复习笔记[汇总篇]  2.线性表 (1) 性表的链式存储方式及以下几种常用链表的特点和运算:单链表.循环链表,双向链表,双向循环链表. (2)单链表的归并算法.循环链表的归并算法.双向链表及双向循环链表的插入和删除算法等都是较为常见的考查方式. (3)单链表中设置头指

[HTML面试]HTML5 面试中最常问到的 10 个问题

1. HTML5 新的 DocType 和 Charset 是什么?HTML5 现在已经不是 SGML 的子集,DocType 简化为:                  <!doctype html>HTML 5 指定 UTF-8 编码的方式如下:                 <meta charset="UTF-8"> 2. 如何在 HTML5 页面中嵌入音频?HTML 5 包含嵌入音频文件的标准方式,支持的格式包括 MP3.Wav 和 Ogg:<

iPhone开发常问的十个问题

iPhone开发常问的十个问题 前言 今天去stackoverflow.com上看了一下iPhone标签下排名最高的10个问题,将它们整理出来,希望这些常见问题能帮到一些iPhone开发的初学者.本来想把答案也翻译过来的,后来发现答案资料通常都比较复杂,翻译起来太麻烦.所以大家还是看英文的答案吧,我只顺带用中文总结一下答案. 问题一: 有哪些iPhone开发和Objective-C的入门资料 这个确实是最常问的问题了.对于我个人来说,入门时所看的资料主要是<From C++ to Objecti

新三板知识:客户最常问的22个问题及标准解答

新三板知识:客户最常问的22个问题及标准解答 新三板客户最常问的22个问题之标准解答 一.企业申请在新三板挂牌的条件有哪些 根据<全国中小企业股份转让系统业务规则>第2.1条的规定,股份公司申请挂牌应当符合下列条件: 1.依法设立且存续满两年.有限责任公司按原账面净资产值折股整体变更为股份有限公司,存续时间可以从有限责任公司成立之日起计算: 2.业务明确,具有持续经营能力: 3.公司治理机制健全,合法规范经营: 4.股权明晰,股票发行和转让行为合法合规: 5.主办券商推荐并持续督导: 6.全国

面试常问问题:银行网上支付项目中怎么控制多线程高并发访问?

面试常问问题:银行网上支付项目中怎么控制多线程高并发访问? synchronized关键字主要解决多线程共享数据同步问题. ThreadLocal使用场合主要解决多线程中数据因并发产生不一致问题. ThreadLocal和Synchonized都用于解决多线程并发访问.但是ThreadLocal与synchronized有本质的区别: synchronized是利用锁的机制,使变量或代码块在某一时该只能被一个线程访问.而ThreadLocal为每一个线程都提供了变量的副本,使 得每个线程在某一时

2014年软考程序员-常考知识点复习笔记【汇总篇】

51CTO学院,在软考备考季特别整理了"2014年软考程序员-常考知识点复习笔记[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 2014年软考程序员常考知识点复习笔记汇总 1 2014年软考程序员常考知识点复习笔记第一章 查看详情 2 2014年软考程序员常考知识点复习笔记第二章 查看详情 3 2014年软考程序员常考知识点复习笔记第三章 查看详情 4 2014年软考程序员常考知识点复习笔记第四章 查看详情 5 2014年软考程序员常

2014年软考程序员-常考知识点复习笔记【第一章】

51CTO学院,在软考备考季特别整理了"2014年软考程序员-常考知识点复习笔记[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考程序员-常考知识点复习笔记[汇总篇]  常考基础知识必会 A. 排序:排序有几种,各种排序的比较,哪些排序是稳定的,快排的算法; B. 查找:哈希查找.二叉树查找.折半查找的对比,哈希映射和哈希表的区别? C. 链表和数组的区别,在什么情况下用链表什么情况下用数组? D. 栈和队列的区

2014年软考程序员-常考知识点复习笔记【第二章】

51CTO学院,在软考备考季特别整理了"2014年软考程序员-常考知识点复习笔记[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考程序员-常考知识点复习笔记[汇总篇]  二叉树三种遍历的非递归算法(背诵版) 1.先序遍历非递归算法 #define maxsize 100 typedef struct { Bitree Elem[maxsize]; int top; }SqStack; void PreOrderU