C++知识点
观赏
github:https://github.com/happyxiaotao
展开
-
C++中explicit的用法
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生,声明为explicit的构造函数不能在隐式转换中使用。C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造;2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型原创 2017-02-27 18:14:42 · 90980 阅读 · 8 评论 -
C++一些知识点的简单总结
本着食之无味,弃之可惜的思想,本文简单总结一些在平时C++使用中的一些使用较为细枝末节的注意事项。欢迎大家补充(持续更新)声明与定义:变量的声明同时也是定义。只有extern int a这种情况下是声明。函数才分声明(原型)和定义(实现)。作用域:1,局部2,全局3,命名空间4,类内存分配(地址由高到低)1. 栈又叫堆栈,非静原创 2017-04-06 22:18:30 · 478 阅读 · 0 评论 -
C++this指针详解
我们知道在如下例子中。class Test{public: Fun(int a) { //doSomething }private: int a;};Fun(int a)是Test的非静态成员函数,所以编译器在编译期间改写该函数时,会自动将一个名为this的指针当作为第一个参数传入。类似于:Fun(Test* const this,int a);原创 2017-04-06 01:36:06 · 2650 阅读 · 1 评论 -
细数变量所具有的属性
我们知道,变量的一些属性决定了一个变量的“可视性”(它可以在什么地方使用)和“生命期”(它的值将保存多久),对于我们编写程序非常重要。受此启发,最近总结一下变量所应具有的属性,特别总结记录下来。1,名字属性2,类型属性3,值属性4,作用域5,链接属性6,存储类型(包含生命期)1,名字属性所谓名字,其实就是标识符(identity),它由大小写字母、数字和原创 2017-04-03 01:09:21 · 1752 阅读 · 0 评论 -
C++中的类型转换
我们知道:变量的类型定义了对象能包含的数据和参与的运算。其中一种运算被大多数类型支持,就是将变量从某一种给定的类型转化为另外的类型。在了解类型转换种类之前,首先牢记:类型转换只是暂时的,原来的变量类型并不改变。在C语言中,分为两种类型转换1,隐式类型转换2,显示类型转换例如:double d = 12.34;int i = d;//发生隐式转化int*原创 2017-04-04 00:25:18 · 254 阅读 · 0 评论 -
类的定义与实现
一、"类" 的介绍 在C++中, 用 "类" 来描述 "对象", 所谓的"对象"是指现实世界中的一切事物。那么类就可以看做是对相似事物的抽象, 找到这些不同事物间的共同点, 如自行车和摩托车, 首先他们都属于"对象", 并且具有一定得相同点, 和一些不同点, 相同点如他们都有质量、都有两个轮子, 都是属于交通工具等。"都有质量"、"两个轮子"属于这个对象的属性, 而"都能够当做交通工转载 2017-04-03 20:08:29 · 671 阅读 · 0 评论 -
详解static与extern的区别
我们必须知道:C/C++声明的变量默认是内部链接,函数默认是外部链接。关键字extern和static用于在声明中,修改标识符的链接属性(链接类型表明了一个标识符的可见性)。这里主要就是比较两者对于标识符在链接属性方面的影响。static(只讨论其对变量或函数实体链接属性的影响)1,如果某个声明在正常情况下具有external链接属性,在它前面加上static关键字可以原创 2017-04-02 23:44:21 · 2705 阅读 · 0 评论 -
读书笔记:C++四种次语言概念
下面是我在阅读《effective C++》的阅读笔记C++是一门难学易用的语言,一开始,C++只是C加上一些面向对象特性,C++最初的名称C With Class也反映了这个血缘关系。但是当着个语言逐渐成熟他变得更活跃,更无束,更大胆更冒险,开始接受不同于C WithClass的各种观念 、特性和编程战略。比如:Exception(异常)对函数结构化带来了不同的做法,temp原创 2017-04-02 01:45:49 · 860 阅读 · 0 评论 -
C++引用总结
什么是引用?引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量一直绑定在一起共用同一块内存空间。一般情况,引用具有以下性质。1,引用不是一个变量,只是一个已存在变量的别名。int a = 10;int& ra = a;//ra是a的引用//sizeof(ra) == sizeof(a)ra = 20;//对ra原创 2017-03-30 10:31:12 · 821 阅读 · 0 评论 -
C++函数重载详解
C++重载函数其实是一种特殊的函数。它满足以下性质:1,同一作用域2,函数名相同3,参数列表不同(参数个数,参数类型,参数顺序)定义重载函数例子:有一种典型的数据库应用,需要创建几个不同的函数分别根据账户号码、名字、电话等信息查找记录。函数重载使得我们可以定义以下一组函数,它们的名字都是lookup,但是查找的依据不用。Record lookup(const原创 2017-03-29 16:07:53 · 688 阅读 · 0 评论 -
C++缺省参数
C语言不支持给函数参数指定默认值,而C++支持。C++默认参数机制:缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。例如:在test.c中,下面程序会编译失败#include void test(int a = 1){ printf("a = %d\n", a);}int main(){原创 2017-03-28 19:21:22 · 795 阅读 · 0 评论 -
不可轻浮的看待C++
学习C++很长时间了,也看过很多程序员学习C++的历程。总体来说,C++是一个“双刃剑”式的语言,只有那些熟悉他的人才能把C++这门语言用好。Linus曾说过:“C++是一门很恐怖的语言,而比它更恐怖的是很多不合格的程序员在使用着它”。是的,C++并不是一门速成的语言,其是一门需要长时间磨练和学习的语言,那些说自己熟悉C++语言的程序只能算是轻浮的。下面是一个C++程序员在学习过程序中的一转载 2017-03-28 18:59:09 · 401 阅读 · 0 评论 -
《effective C++》读书笔记
最近又重新开了一遍《effective C++ 》3e,对于以前不懂的地方也有了深刻体会。为了方便自己的查阅,将此我讲书中的一部分内容摘要记录。1,让自己习惯C++ 条款01:视C++为一个语言联邦 C++分为四个语言联邦: - C:主要是C的部分,区块、语句、预处理、内置数据类型、数组、指针等等。 - Object-Oriented C++:这部分就是C with Class强调的。包原创 2017-08-12 21:58:47 · 328 阅读 · 0 评论