运算符优先级

!> 算术运算符 > 关系运算符 > (&& ||)> 条件运算符> 赋值运算符 > 逗号运算符

库引用

include   ""是先从本地目录开始寻找,然后去寻找系统路径,而Include   <>   相反先从系统目录,后从本地目录。比如:

  • 当用#include“file.h”时,先搜索当前工作目录,如果没有,再去搜索标准库,库没有再搜索资源库;
  • 当用#include<file.h>时,编译器先从标准库开始搜索,如果没再搜索资源库目录,若还未找到则搜索当前工作目录。

抽象类不能被实例化,但是可以存在抽象类指针指向子类。

模板类的继承包括四种:

  • 1.(普通类继承 模板类
  • 2.(类模板继承了普通类(非常常见))
  • 3.(类模板继承类模板)
  • 4.(类模板继承 模板类,即继承模板参数给出的基类)
注:模板类是类模板的一个实例。即,类型参数具体化。

多态

多态主要以两种形式,静态多态和动态多态。

静态多态主要实现了函数重载和运算符重载。

动态多态主要实现了虚函数。虚函数是动态联编,程序在运行的过程中确定调用哪一个函数。

重载

函数重载的条件是:函数名相同,参数类型或者个数不同,返回类型不能视为重载。

宏和函数

先说宏和函数的区别:

  • 1.宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型.
  • 2.宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的.
  • 3.宏在编译之前进行,即先用宏体替换宏名,然后再编译的,而函数显然是编译之后,在执行时,才调用的.因此,宏占用的是编译的时间,而函数占用的是执行时的时间.
  • 4.宏的参数是不占内存空间的,因为只是做字符串的替换,而函数调用时的参数传递则是具体变量之间的信息传递,形参作为函数的局部变量,显然是占用内存的.
  • 5.函数的调用是需要付出一定的时空开销的,因为系统在调用函数时,要保留现场,然后转入被调用函数去执行,调用完,再返回主调函数,此时再恢复现场,这些操作,显然在宏中是没有的.
内联函数与宏的区别:

  • 1.内联函数在运行时可调试,而宏定义不可以;
  • 2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会;
  • 3.内联函数可以访问类的成员变量,宏定义则不能;
  • 4.在类中声明同时定义的成员函数,自动转化为内联函数。

静态成员

静态成员数据是属于类的,类的所有对象共享。

静态成员依赖于类而不是对象。

静态成员数据视作全局变量。

数据类型

float型数据通常用IEEE754单精度浮点数格式表示:(32位)
三部分组成:符号位、阶码、尾数;
1.符号位:第31位(0-31)正数--0        负数--1
2.阶码:第30位----第23位(共8位)
计算:将实数转化为二进制的指数表示形式,形如 a*2^n;a的取值范围应在在1~2之间,阶码 = n + 127,最后将其表示成二进制形式
3.尾数:第22位----第0位
上述参数a的小数部分为尾数部分
 
 
示例: -8.25:
1.符号位 = 1;
2. (8.25)10 = (1000.01)2 = 1.000 01 * 2^3;        n = 3        阶码    =    3+127 = (130)10 = ( 100  0001  0)2
3.尾数 : 000 0100  0000 0000 0000 0000
最终结果 : 1100 0001 0000 0100 0000 0000 0000 0000
                    1        100 0001 0        000 0100 0000 0000 0000 0000
                符号位        阶码                                    尾数

const

* (指针)和 const(常量) 谁在前先读谁 ;*象征着地址,const象征着内容;谁在前面谁就不允许改变。
常量指针:指向的地址可以变,但内容不可以重新赋值,内容的改变只能通过修改地址指向后变换。
指针常量:指向的地址不可以重新赋值,但内容可以改变,必须初始化,地址跟随一生。
 

struct

C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。
struct能包含成员函数吗? 能!
struct能继承吗? 能!!
struct能实现多态吗?
能!!!

既然这些它都能实现,那它和class还能有什么区别?

最本质的一个区别就是默认的访问控制:

默认的继承访问权限

struct是public的,class是private的。

Tips on C/C++的更多相关文章

  1. Mac上MySQL忘记root密码且没有权限的处理办法&workbench的一些tips (转)

    忘记Root密码肿么办 Mac上安装MySQL就不多说了,去mysql的官网上下载最新的mysql包以及workbench,先安装哪个影响都不大.如果你是第一次安装,在mysql安装完成之后,会弹出来 ...

  2. 【Tips】史上最全H1B问题合辑——保持H1B身份终级篇

    [Tips]史上最全H1B问题合辑——保持H1B身份终级篇 2015-04-10留学小助手留学小助手 留学小助手 微信号 liuxue_xiaozhushou 功能介绍 提供最真实全面的留学干货,帮您 ...

  3. layer.js中layer.tips

    <script src="~/Content/js/layer/layer.js"></script> layer.tips('名称不能为空', '#pro ...

  4. HTML 最简单的tips 怎么支持指定DIV显示提示信息

    <body> <style type="text/css"> a.link{position:relative;} a.link div.tips{ bor ...

  5. CSS:CSS使用Tips

    Css是前端开发中效果展现的主要部分之一,良好的Css书写习惯可以为实际的项目开发提高效率,也可以为实现良好的团队合作提供保证. 一般新手在使用Css的时候经常会犯一些错误,出现一些不经意的漏洞,如果 ...

  6. 【读书笔记】100个Switf必备tips

    声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 1.Selector 在Swi ...

  7. 【转】40个良好用户界面Tips

    一个良好的用户界面应具有高转换率,并且易于使用.但要用户体验良好并不容易做到,下面我们整理了40个良好用户界面Tips,希望能对你有帮助! 1 尽量使用单列而不是多列布局 单列布局能够让对全局有更好的 ...

  8. 转:Eclipse Search Tips

    from:  https://github.com/ajermakovics/eclipse-instasearch/wiki/Eclipse-search-tips Eclipse Search T ...

  9. VS:101 Visual Studio 2010 Tips

    101 Visual Studio 2010 Tips Tip #1        How to not accidentally copy a blank line TO – Text Editor ...

  10. [css 揭秘]-css coding tips

    css 揭秘之css coding tips demo(1) html 代码: <body> <section> <div class="demo1" ...

随机推荐

  1. Scala Collection Method

    接收一元函数 map 转换元素,主要应用于不可变集合 (1 to 10).map(i => i * i) (1 to 10).flatMap(i => (1 to i).map(j =&g ...

  2. mysql替换字段中部分字符串

    解决:使用replace(obj, search, replace_str)函数; sql语法: UPDATE 表名 SET 字段名=replace(字段名, ‘被替换字符串’, '用来替换的字符串' ...

  3. SocketChannel简述

    前言 在前面的Channel概述的分类中提到过SocketChannel主要是用来基于TCP通信的通道.这篇文章详细介绍下SocketChannel SocketChannel是什么 SocketCh ...

  4. List/Map 导出到表格(使用注解和反射)

    Java 的 POI 库可以用来创建和操作 Excel 表格,有时候我们只需要简单地将 List 或 Map 导出到表格,样板代码比较多,不够优雅.如果能像 Gson 那样,使用注解标记要导出的属性, ...

  5. latex制作表格-跨行跨列

    1.列的合并,使用 \multicolumn{跨几列}{格式}{填充内容} \documentclass[UTF8]{ctexart} \begin{document} 三囚犯问题进行300次实验后\ ...

  6. 在RedHead中安装Oracle

    配置Linux系统下Oracle的安装环境. 1.检查和更新所需软件包. # rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils- ...

  7. Advanced-REST-client 获取及安装

    作为一个java开发人员,大家或多或少的要写或者接触一些http接口.而当我们需要本地调试接口常常会因为没有一款好用的工具而烦恼.今天要给大家介绍一款非常好用.实用且方便的http接口测试工具. 获取 ...

  8. 一步一步学Spring Boot 2 微服务项目实战 - 黄文毅-2018年8月第一次印刷

    properties 配置文件的优先级高于.yml .在properties文件中配置了server.port=8080 同时在.yml中配置了server.port=8090  Spring Boo ...

  9. 【转载】C#中SqlCommand类的作用以及常用方法

    在C#的数据库操作过程中,SqlCommand类一般用于Sqlserver数据库的SQL语句的执行,包括Select语句.Update语句.Delete语句以及SQL存储过程等,SqlCommand的 ...

  10. QT Graphics-View图元组使用

    通过把一个item作为另一个item的孩子,你可以得到item组的大多数本质特性:这些items会一起移动,所有变换会从父到子传递.QGraphicsItem也可以为它的孩子处理所有的事件,这样就允许 ...