友元函数与友元类

面向对象编程的一个重要思想就是实现数据隐藏(类的封装特性),即:非成员函数不能访问private 或者 protected 变量。有些时候我们需要不经成员函数而访问private 或者 protected数据,那就需要用到 友元函数 或者友元类。1. 友元函数使用 friend 关键字在类内任意位置声明函数为友元函数。 而且,当要访问 非static成员时,需要对象作为参数。如下:#include...
阅读(152) 评论(0)

有符号整数的表示范围

结论: n比特有符号整数的表示范围为 \(-2^{n-1} ~ 2^{n-1}-1\)...
阅读(192) 评论(0)

C++ 类型转换

隐式类型转换 1 数值类型转换 2 指针类型转换 显式类型转换 1 explicit关键字 1 强制类型转换 11 static_cast 12 dynamic_cast 13 const_cast 14 reinterpret_cast 参考资料 C++类型转换大体上包括隐式类型转换和显式类型转换。1. 隐式类型转换隐式类型转换是自动执行的,无需显式的操作符。 隐式类型转换发生在很多地方,比如函数...
阅读(190) 评论(0)

C++ virtual关键字

之前始终没有搞清楚C++中 “virtual” 关键字的用法。 静态函数可以声明为虚函数吗 构造函数可以为虚函数吗 析构函数可以为虚函数吗 虚函数可以为私有函数吗 虚函数可以被内联吗 纯虚函数与抽象类...
阅读(211) 评论(0)

指针与引用

(1)指针 = 地址,引用 = 别名指针描述的是数据在内存中的存储地址;引用相当于给数据起了一个别名,但其内存地址一样。...
阅读(163) 评论(0)

C++ 内联函数inline

1. 内联函数的作用inline 2. 内联函数的实现 3.内联函数的优缺点 4.内联函数的应用场景 5 内联函数与宏的区别...
阅读(358) 评论(0)

static关键字

static关键字的介绍主要从以下几个方面进行:1. 静态局部变量 2.静态全变量 3.静态函数 4.静态类成员变量 5.静态类成员函数...
阅读(509) 评论(2)

C/C++的四大内存分区

本文转载自Dablelv的博客专栏http://blog.csdn.net/k346k346/article/details/45592329正确的理解C/C++程序的内存分区,是合格程序猿的基本要求。 网络上流形两大版本内存分区,分别为:1. 五大内存分区:堆、栈、全局/静态存储区、自由存储区和常量存储区。 2. 五大内存分区:堆、栈、全局/静态存储区、字符串常量区和代码区。且不论以上两种...
阅读(392) 评论(0)

STL-Vector内存机制

vector可以看作是一个动态数组,其内存是连续的,并具有以下特性:(1) vector中的size表示当前实际数据数量,capacity 则表示当前可容纳的数量,即已开辟的内存。(2) 释放(pop_back)、删除(erase) 和 清空(clear) 只会改变size,不会改变capacity 。只有在vector析构的时候才会清空所有内存。(3) 当追加(push_back)、 插入(ins...
阅读(379) 评论(0)

C++ 类访问控制

最近在使用C++创建类的时候,忽然发现自己对于类访问控制 public,protected,private 的作用没有理解透彻,后来就查了些资料,这里以作记录。访问控制C++类的重要属性就是封装和继承。因此,最关键的问题就是权限 的问题,public,protected,private 控制的就是类内成员的访问权限。...
阅读(423) 评论(0)

C++ 将文件数据一次性加载进内存

问题: 早先写了一个目标检测SDK,里面有从bin文件加载模型和从内存加载模型两个接口。后来遇到了级联检测,即有多个bin模型文件,当想要把多个bin文件合并成一个的时候,发现对应的加载接口也得变。解决: 为了不改变接口,采用了下面的解决思路...
阅读(755) 评论(0)

VS运行时库

本文主要讲述VS运行时库: 1 运行时库的主要作用 MTMTdMDMDdMLMLd 已废弃的区别与原理 如何避免这种错误 1 MD和MDd将是潮流所趋 2 在多工程开发时所有的工程使用同一种运行时库 历史发展的角度讲解运行时库 1 从操作系统的角度出发 2 从语言的角度在Windows下进行...
阅读(668) 评论(0)

浮点数表示

浮点数表示 浮点数的规格化表示 浮点数的表示范围 浮点数的表示精度 参考资料 之前的一些工作当中碰到了很多有关浮点数的问题,比如浮点数的表达范围、表达精度、浮点数的存储方式、浮点数的强制类型转换等等,因此感觉有必要系统了解一下有关浮点数的问题。 —————————— 浮点数表示 —————————— 浮点数是一种 公式化 的表达方式,用来近似表示实数,并且可以在...
阅读(982) 评论(0)

C++ Map常见用法说明

C++中map提供的是一种键值对容器,里面的数据都是成对出现的,如下图:每一对中的第一个值称之为关键字(key),每个关键字只能在map中出现一次;第二个称之为该关键字的对应值。一. 声明//头文件 #includemap ID_Name;// 使用{}赋值是从c++11开始的,因此编译器版本过低时会报错,如visual studio 2012 map<int,...
阅读(12996) 评论(1)

C++ 宏定义

———————— #define基本用法 ————————#define命令是C语言中的一个宏定义命令,它用来将一个标识符(宏名)定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。程序编译之前,编译的时候所有的宏名都会被定义的字符串替换,这便是宏替换。理解宏定义的关键在于 “替换”。该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。(1)简单的宏定义: #defi...
阅读(1071) 评论(0)
17条 共2页1 2 下一页 尾页
    个人资料
    • 访问:397656次
    • 积分:4912
    • 等级:
    • 排名:第6152名
    • 原创:107篇
    • 转载:10篇
    • 译文:1篇
    • 评论:437条
    最新评论