1,在C语言中,全局变量必须声明在所有的函数之前,局部变量必须声明在所有可执行语句之前; C++ 允许在代码块的任何位置对局部变量进行声明

2,常量定义方面,C语言 #define 可能因计算的优先级出现问题,C++ const:不允许在程序的任何位置改变const修饰符声明的常量,常量的名称一般用大写字母

3,C 语言不允许函数重载的概念,对于不同的数据类型需要给出不同的函数

4,在C语言中使用malloc()函数分配动态内存空间,使用free()函数释放动态内存空间;(需要包含malloc.h 或 stdlib.h)(malloc函数分配的空间无法得知存放的数据类型,返回的是void型指针,还应该将其返回类型强制转换)

C++中使用new delete  (可以自动计算所需要分配的内存大小,并能返回正确的指针类型,若没有足够内存,将返回空指针)

5,C++ 动态特性:多态性,动态联编,虚函数

虚函数 —— 被virtual关键字修饰的成员函数,用于实现多态(多态的关键之处就在于使用指向基类的指针或引用来操作子类对象)

class A
{
public:
	virtual void print(){cout<<"This is A"<<endl};
};
class B:public A
{
public:
	void print(){cout<<"This is B"<<endl;}
};

int main()
{
	A aa;
	B bb;
	A* s1=&aa;
	A* s2=&bb;
	s1->print();
	s2->print();
}
 
 

多态性实现方式:强制多态(类型强制转换),重载多态(函数及运算符重载),类型参数化多态(模板),以及包含多态(类继承已经虚函数)静态联编 —— 联编工作出现在编译链接阶段,联编过程在程序开始运行之前完成动态联编 —— 在编译阶段并不知道要调用哪个函数,只有在程序执行时才能确定,联编工作在程序运行时进行

 

6,对象的生存周期:局部对象 —— 当程序退出该对象所在函数体时 —— 函数体全局对象 —— 程序运行结束 —— 包含该文件的整个程序中静态对象 —— 从定义对象开始到文件结束动态对象 —— new _ delete

 

7,C++ 类体中不允许对所定义的数据成员进行初始化在类的成员函数中调用非成员函数,在非成员函数前面必须加上 ::构造函数必须是共有的仅当没有自定义构造函数时编译器才会自动创建

 

8,浅拷贝就是对默认拷贝构造函数所实现的的数据成员逐一赋值,如果类中含有指针类型数据,将会产生错误,为了解决问题,需要显示定义拷贝构造函数,使其不但可以复制数据成员,而且可以为对象分配内存空间,这就是深拷贝。如果在类定义中没有声明,C++编译器会自动在类中加入四个函数:构造函数,析构函数,拷贝构造函数,拷贝赋值函数。class A{…}A a1;A a2=a1; // 调用拷贝赋值函数A a3(a1); // 调用拷贝构造函数以上若没有显示定义分配内存,全是浅拷贝 —— 在对象中不包含其他对象的引用时,深浅拷贝一致

 

9,析构函数只能有一个析构函数是成员函数,析构函数可以手动调用也可以被系统调用当一个对象是使用new 运算符动态创建的,那么在使用delete运算符将其释放时,会自动调用析构函数

 

10, 静态成员变量不是实例对象的一部分,而是所有对象所共有的,因此必须在类的内部声明,在类的外部定义

 

11,友元提供了不同类与函数之间数据共享的能力 —— 普通的成员函数只能访问其所在类内部的其他成员,而被声明为友元的函数则卡宴访问相关的所有类内部的成员友元的关系不是双向的友元关系不能被继承友元关系不能被传递

C++ 补课(一)的更多相关文章

  1. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...

  2. IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列

    1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...

  3. 补课:PageRank

    最近连续听到PageRank算法,久闻其名,不闻其详,心里虚得很,今儿补补课. PageRank算法的网络资料非常全面,毕竟是将近二十年的经典算法,算法细节可以参考文末链接,这里简单说说我的理解. P ...

  4. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...

  5. IM开发基础知识补课(七):主流移动端账号登录方式的原理及设计思路

    1.引言 在即时通讯网经常能看到各种高大上的高并发.分布式.高性能架构设计方面的文章,平时大家参加的众多开发者大会,主题也都是各种高大上的话题——什么5G啦.AI人工智能啦.什么阿里双11分分钟多少万 ...

  6. Web端即时通讯基础知识补课:一文搞懂跨域的所有问题!

    本文原作者: Wizey,作者博客:http://wenshixin.gitee.io,即时通讯网收录时有改动,感谢原作者的无私分享. 1.引言 典型的Web端即时通讯技术应用场景,主要有以下两种形式 ...

  7. Linux知识补课

    Linux补课 已经将开发环境转Linux了(当然用的是ubuntu,图像界面还是舒服一点,支持也多),不上QQ和微信的话用的还是挺舒服的,但是无奈基础欠账太多,这里赶快补一下 Linux和Unix的 ...

  8. javaweb学习笔记整理补课

    javaweb学习笔记整理补课 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端 ...

  9. 「补课」进行时:设计模式(5)——从 LOL 中学习代理模式

    1. 前文汇总 「补课」进行时:设计模式系列 2. 从 LOL 中学习代理模式 我是一个很喜欢玩游戏的人,虽然平时玩游戏的时间并不多,但我也是一个忠实的 LOL 的爱好者,就是段位有点惨不忍睹,常年倔 ...

  10. 趁着同事玩游戏偷偷认识k8s一家子补补课

    趁着同事玩偷偷认识k8s一家子补补课 Kubernetes集群这个大家庭在容器化时代能够新军崛起,要感谢其众多可靠稳定,工作认真负责的优质成员. 这些兄弟姐妹们为集群提供故障转移和高可用性,保证k8s ...

随机推荐

  1. Bootstrap-FileInput组件的简单Demo

    官网: https://github.com/kartik-v/bootstrap-fileinput/ http://plugins.krajee.com/file-input   HTML页面: ...

  2. MySQL服务正在启动或停止中,请稍候片刻后再试一次【解决方案】

    相信有些小伙伴在使用数据库的过程中会经常频繁的启动和停止MySQL服务,有时候会出现“服务正在启动或停止中,请稍候片刻后再试一次.”这样的提示,如下图所示. 于是乎想办法去解决这个问题,但是发现连强制 ...

  3. BNU 34974 MATLAB大法好

    题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=34974 MATLAB大法好  Time Limit: 8000ms Memory Limi ...

  4. POJ 3014:Asteroids(二分匹配,匈牙利算法)

    id=3041">Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14399   Acce ...

  5. IIS 无法读取配置节&quot;system.web.extensions&quot;,由于它缺少节声明

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking 今天在本地安装iis.搭建站点,应用程序的时候报错以下的错误: server错误 Internet ...

  6. 解决Android Studio 2.2.3中添加.cpp .h文件在Project->Android无法显示,无法正常编译问题。

    搭配使用 Android Studio 2.2 或更高版本与 Android Plugin for Gradle 版本 2.2.0 或更高版本时,您可以将 C 和 C++ 代码编译到 Gradle 与 ...

  7. poj--2007--Scrambled Polygon(数学几何基础)

    Scrambled Polygon Time Limit: 1000MS   Memory Limit: 30000KB   64bit IO Format: %I64d & %I64u Su ...

  8. centos7 ssh免口令认证登录

    摘要:centos7, xshell, 公钥,  ssh ssh登录方式有口令认证登录和密钥认证登录 接下来本次介绍是ssh密钥登录方式 (1)产生公钥 (2)将公钥放置到centos7的(/root ...

  9. Json学习总结(1)——Java和JavaScript中使用Json方法大全

    摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语 ...

  10. C# Socket服务端及多客户端连接通信实现

    服务端代码(控制台示例): static List<Socket> Sockets = new List<Socket>(); static void Main(string[ ...