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. PostgreSQL Replication之第二章 理解PostgreSQL的事务日志(5)

    2.5 XLOG的内部结构 我们将使用事务贯穿本书,并让您在技术层面上更深地洞察事情是如果工作的,我们已经增加了这部分专门处理XLOG的内部工作机制.我们会尽量避免前往下降到C级,因为这将超出本书的范 ...

  2. Ambari Confirm Hosts Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

    Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).解决 Permanently added 'hdp21,192. ...

  3. Bomb HDU - 3555 数位dp

    Code: #include<cstdio> #include<algorithm> #include<cstring> #include<string> ...

  4. 用xstart远程连接linux图形用户界面时发生已经在使用的情况

    1.举例打开pycharm 2.此时要输入ps aux|grep pycharm,出现下面的情况 3.然后找到矩形圈住的内容,然后输入 这样就杀掉了远程机子上pycharm,接着继续输入pycharm ...

  5. Perl模块利用CPAN在线安装自动化

    需要解决2个问题: 1.  如何与CPAN交互:利用perl –MCPAN –e ‘install 模块’ 2.  如何安装指定的版本:作者/模块-版本.tar.gz How to install a ...

  6. 去除windows编辑文本中的回车符

    情景描述: 最近,huskiesir的朋友遇到了一个很奇葩的问题.那就是他在windows上搭建了一个http服务,把A脚本放在了上面并用linux去下载和执行,但是在执行的时候出现了问题,在linu ...

  7. Java基础学习总结(17)——线程

    一.线程的基本概念 线程理解:线程是一个程序里面不同的执行路径 每一个分支都叫做一个线程,main()叫做主分支,也叫主线程. 程只是一个静态的概念,机器上的一个.class文件,机器上的一个.exe ...

  8. MyEclipse连接不上genymotion的解决方式

    奇怪的是我的MyEclipse有时候连接得上genymotion,有时候又连接不上.之前连接不上的时候,就直接用真机调试,因此出现这个问题非常久了一直都没有去找解决方式.今天认真的反省了自己,再也不能 ...

  9. 从Linux系统内存逐步认识Android应用内存

    总述 Android应用程序被限制了内存使用上限,一般为16M或24M(具体看系统设置),当应用的使用内存超过这个上限时,就会被系统认为内存泄漏,被kill掉.所以在Android开发时,管理好内存的 ...

  10. zzulioj--1089--make pair(dfs+模拟)

    1809: make pair Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 60  Solved: 44 SubmitStatusWeb Board ...