上一页 1 ··· 4 5 6 7 8 9 10 11 下一页
摘要: 所谓预编译头,就是把头文件事先编译成一种二进制的中间格式,供后续的编译过程使用。GCC编译头文件后的中间文件是*.gch。如何将头文件编译为.gch文件呢?用g++编译,格式:g++ xxx.h把.h文件当成.cpp文件一样来编译。如果需要控制编译细节,比如常量定义之类,可加上其它选项。运行之后,会 阅读全文
posted @ 2018-06-18 23:20 CTHON 阅读(2737) 评论(0) 推荐(1) 编辑
摘要: 单利模式的优缺点和使用场景 首先介绍一下单例模式: 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存 阅读全文
posted @ 2018-06-18 23:01 CTHON 阅读(9338) 评论(1) 推荐(1) 编辑
摘要: 1 PIMPL解释 PIMPL(Private Implementation 或 Pointer to Implementation)是通过一个私有的成员指针,将指针所指向的类的内部实现数据进行隐藏。 PIMPL(Private Implementation 或 Pointer to Impleme 阅读全文
posted @ 2018-06-18 21:52 CTHON 阅读(8807) 评论(0) 推荐(4) 编辑
摘要: 类对象和其他类型对象的转换 转换场合有: 赋值转换 表达式中的转换 显式转换 函数调用, 传递参数时的转换 转换方向有: 由定义类向其他类型的转换 由其他类型向定义类的转换 由其他类型向定义类的转换 由其他类型(如int、double)等向自定义类的转换是由构造函数来实现的,只有当类的定义和实现中提 阅读全文
posted @ 2018-06-18 21:47 CTHON 阅读(6756) 评论(0) 推荐(1) 编辑
摘要: 在后台程序运行出问题时,详尽的日志是抓错不可缺少的帮手,这里提供一个能自动记录日志触发点文件名、行号、函数名的方法,关键是利用C99新增的预处理标识符__VA_ARGS__ 先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息 阅读全文
posted @ 2018-06-17 18:00 CTHON 阅读(5659) 评论(0) 推荐(0) 编辑
摘要: 一:回顾 (1)c++中的string类是在面试中和笔试中经常考的题目; 工程代码免费下载 string类的自行实现 (2)c++中的string类和fstream类合起来是处理外部数据的利器; (3)string类经常用到find find_first_of find_first_not_of f 阅读全文
posted @ 2018-06-17 17:57 CTHON 阅读(754) 评论(0) 推荐(0) 编辑
摘要: log4..简介 log4..是基于log4j的一系列的c++移植版本,使用了log4j的模式结构,目前主要有以下几个版本: 1. log4cxx, 目前是到0.10.0版,Apache下的孵化项目,不能独立编译,依赖于APR,编译比较麻烦,2008年以后就没再更新 2. log4cplus,目前最 阅读全文
posted @ 2018-06-17 14:07 CTHON 阅读(8832) 评论(1) 推荐(2) 编辑
摘要: 概述 今天聊聊C++的可移植性问题。如果你平时使用C++进行开发,并且你对C++的可移植性问题不是非常清楚,那么我建议你看看这个系列。即使你目前没有跨平台开发的需要,了解可移植性方面的知识对你还是很有帮助的。 C++的可移植性这个话题很大,包括了编译器、操作系统、硬件体系等很多方面,每一个方面都有很 阅读全文
posted @ 2018-06-15 15:08 CTHON 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 1、流的控制 iomanip 在使用格式化I/O时应包含此头文件。 stdiostream 用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序 2、类继承关系 ios是抽象基类,由它派生出istream类和ostream类, iostream类支持输入输出操作,iostream 阅读全文
posted @ 2018-06-14 22:30 CTHON 阅读(11857) 评论(0) 推荐(0) 编辑
摘要: 今天在阅读《google c++ 编程风格》的文档的时候,5.10. 前置自增和自减:有一句话引起了我的注意: 对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.,理由是 前置自增 (++i) 通常要比后置自增 (i++) 效率更高。于是我查了查前置++和后置++的区别。 注意 阅读全文
posted @ 2018-06-14 22:27 CTHON 阅读(10054) 评论(2) 推荐(7) 编辑
摘要: C++11的一大亮点就是引入了Lamda表达式。利用lamda表达式,可以方便的定义换个创建匿名函数。对于C++这么语言来说,"Lamda表达式"或"匿名函数"这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lamda表达式的功能,如C#,Python等。 声明Lambda表达式 La 阅读全文
posted @ 2018-06-14 20:01 CTHON 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 在牛客网上看到一题字符串拷贝相关的题目,深入挖掘了下才发现原来C++中string的实现还是有好几种优化方法的。 原始题目是这样的: 关于代码输出正确的结果是()(Linux g++ 环境下编译运行) int main(int argc, char *argv[]) { string a="hell 阅读全文
posted @ 2018-06-14 10:48 CTHON 阅读(6846) 评论(0) 推荐(1) 编辑
摘要: C++内部定义的数据类型(int , float, …)的数据操作可以用运算符号来表示,其使用形式是表达式;用户自定义的类型的数据的操作则用函数表示,其使用形式是函数调用。为了使对用户自定义数据类型的数据的操作与内置的数据类型的数据的操作形式一致,C++提供了运算符的重载,通过把C++中预定义的运算 阅读全文
posted @ 2018-06-14 09:06 CTHON 阅读(862) 评论(0) 推荐(0) 编辑
摘要: 一、为什么引入友元机制? 总的来说就是为了让非成员函数即普通函数或其他类可以访问类的私有成员,这确实破坏了类的封装性和数据的隐蔽性,但为什么要这么做呢? (c++ primer:尽管友元被授予从外部访问类的私有部分的权限,但它并不与面向对象的编程思想相悖,相反,他们提高了公有接口的灵活性)。要理解这 阅读全文
posted @ 2018-06-14 08:37 CTHON 阅读(3349) 评论(0) 推荐(1) 编辑
摘要: 解析:成员函数会用this指针自动隐藏第一个操作数(左操作数) 1、把全局函数转化成成员函数,通过this指针隐藏左操作数。 Test add(Test &t1,Test &t2) ==> Test add(Test & t2); 2、把成员函数转化成全局函数,多了一个参数 vpid printAB 阅读全文
posted @ 2018-06-13 21:34 CTHON 阅读(3437) 评论(0) 推荐(0) 编辑
摘要: 前言 c++对象模型可以概括为以下2部分 1、语言中直接支持面向对象程序员设计部分,主要涉及如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等待。 2、对于各种支持的底层实现机制 在c语言中,“数据”和“处理数据的操作(函数)”是分开来声明的,也就是说,语言本身并没有支持“数据和函 阅读全文
posted @ 2018-06-13 17:51 CTHON 阅读(515) 评论(0) 推荐(0) 编辑
摘要: const修饰类的成员函数const修饰变量一般有两种方式:const T *a,或者 T const *a,这两者都是一样的,主要看const位于*的左边还是右边,这里不再赘述,主要来看一下当const修饰类的成员函数时,成员函数有什么特点。https://www.cnblogs.com/ctho 阅读全文
posted @ 2018-06-13 17:01 CTHON 阅读(67765) 评论(2) 推荐(8) 编辑
摘要: 0.static修饰类中成员,表示类的共享数据 1.static类成员 在C++primer里面说过,static类成员不像普通的类数据成员,static类数据成员独立于一切类对象处在。static类数据成员是与类关联的,但不与该类定义的对象有任何关系。这句话什么意思?就是static不会想普通类数 阅读全文
posted @ 2018-06-13 16:36 CTHON 阅读(4550) 评论(0) 推荐(0) 编辑
摘要: 函数调用过程解析 func里的a存储在调用fun函数时开辟的栈空间里,这块栈只在调用func时对func可用,调用结束后返回的a,其实是暂存在寄存器里的(一般情况下是eax),而返回到main里时,main又会把返回的值拷贝到自己所有的栈空间里(在这里是以临时变量的形式)。所以不管是func还是ma 阅读全文
posted @ 2018-06-13 10:56 CTHON 阅读(1241) 评论(0) 推荐(0) 编辑
摘要: new 和 delete 是 C++ 用于管理 堆内存 的两个运算符,对应于 C 语言中的 malloc 和 free,但是 malloc 和 free 是函数,new 和 delete 是运算符。除此之外, new 在申请内存的同时,还会调用对象的构造函数,而 malloc 只会申请内存; del 阅读全文
posted @ 2018-06-12 23:50 CTHON 阅读(573) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 下一页