
c++学习
narutojxl
这个作者很懒,什么都没留下…
展开
-
转 c++ 中头文件重复定义的问题
一、同一头文件中类嵌套的疑问假设我们有两个类A和B,分别定义在各自的头文件A.h和B.h中,但是在A中要用到B,B中也要用到A,像下面的写法是错误的:class B;class A{ public: B b;};class B{ public: A a;};因为在A对象中要开辟一转载 2014-11-21 09:29:01 · 527 阅读 · 0 评论 -
常量指针和指针常量的区别详解
http://blog.youkuaiyun.com/beyond0525/article/details/7409305下面通过一个例子来解析 常量指针 和 指针常量,我们先总结一下 常量指针 和 指针常量 的区别首先一定要明白哪种定义方式是常量指针,哪种是指针常量,这里可以记住三句话加深记忆:* (指针)和 const(常量) 谁在前先读谁 ;*象征着地址,转载 2015-08-15 16:20:59 · 544 阅读 · 0 评论 -
函数对象/仿函数
http://www.cnblogs.com/weiqubo/archive/2011/02/16/1956552.html函数对象/仿函数提到C++ STL,首先被人想到的是它的三大组件:Containers, Iterators, Algorithms,即容器,迭代器和算法。容器为用户提供了常用的数据结构,算法大多是独立于容器的常用的基本算法,迭代器是由容器提供转载 2015-09-11 16:06:20 · 437 阅读 · 0 评论 -
__func__预定义标识符
转载链接:http://book.2cto.com/201306/25342.html很多现实的编译器都支持C99标准中的__func__ 预定义标识符功能,其基本功能就是返回所在函数的名字。我们可以看看下面这个例子,如代码清单2-2所示。代码清单2-2#include #include using namespace std;const char* h转载 2016-10-03 11:02:25 · 1539 阅读 · 0 评论 -
C++析构函数为什么要为虚函数
C++析构函数为什么要为虚函数注:本文内容来源于zhice163博文,感谢作者的整理。1.为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。 下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html a.第一段代码转载 2016-10-04 13:16:47 · 253 阅读 · 0 评论 -
C++中复制构造函数与重载赋值操作符总结
本文内容全部转载自:http://www.jellythink.com/archives/378,感谢此作者。前言这篇文章将对C++中复制构造函数和重载赋值操作符进行总结,包括以下内容:复制构造函数和重载赋值操作符的定义;复制构造函数和重载赋值操作符的调用时机;复制构造函数和重载赋值操作符的实现要点;复制构造函数的一些细节。复制构造函数和重载赋值操作符的定义我们都知转载 2016-10-18 20:15:42 · 301 阅读 · 0 评论 -
C++ typedef用法小结
http://www.cnblogs.com/charley_yang/archive/2010/12/15/1907384.html第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:转载 2016-01-07 10:43:04 · 305 阅读 · 0 评论 -
stringstream的用法
转载地址:http://www.cppblog.com/Sandywin/archive/2007/07/13/27984.html使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了风格的转换,也许你首转载 2016-11-30 10:12:49 · 258 阅读 · 0 评论 -
C++11中的std::function,Lambda表达式
转载地址:http://www.jellythink.com/archives/771http://www.jellythink.com/archives/668http://www.cnblogs.com/DswCnblog/p/5629165.html通过std::function对C++中各种可调用实体(普通函数、Lambda表达式、函数指针、以及其它函数对象等)的封转载 2017-08-30 11:25:16 · 7167 阅读 · 0 评论 -
boost 字符串分割 split, split_regex ; sscanf()
转载地址:https://blog.youkuaiyun.com/gw569453350game/article/details/47400973以多个字符中的任意一个分割(is_any_of),直接上代码:#include <boost/algorithm/string.hpp>#include <iostream>#include <string>#include...转载 2018-04-25 19:43:12 · 3514 阅读 · 0 评论 -
C++拷贝构造函数(深拷贝,浅拷贝)
http://www.cnblogs.com/BlueTzar/articles/1223313.htmlC++拷贝构造函数(深拷贝,浅拷贝)对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。转载 2015-09-14 16:30:51 · 278 阅读 · 0 评论 -
std::priority_queue
http://classfoo.com/ccby/article/Q3jxCstd::priority_queue// template class T, class Container = vectorT>, class Compare = lesstypename Container::value_type> > class priority_queue;转载 2015-09-06 17:19:04 · 1124 阅读 · 0 评论 -
C++对象模型
何为C++对象模型?C++对象模型可以概括为以下2部分:1. 语言中直接支持面向对象程序设计的部分2. 对于各种支持的底层实现机制语言中直接支持面向对象程序设计的部分,如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等等,这也是组里其他同学之前分享过的内容。第一部分这里我简单过一下,重点在底层实现机制。在c语言中,“数据”和“处转载 2014-11-21 12:16:23 · 522 阅读 · 0 评论 -
C++静态库与动态库
转载网址:http://www.cnblogs.com/skynet/p/3372855.html转载 2014-11-21 09:50:38 · 345 阅读 · 0 评论 -
数组和指针的区别
http://blog.chinaunix.net/uid-23544029-id-311366.htmlC++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。 数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的转载 2015-08-15 11:58:38 · 325 阅读 · 0 评论 -
malloc()与calloc区别
转载地址:http://blog.youkuaiyun.com/firecityplans/article/details/44901241.分配内存空间函数malloc 调用形式: (类型说明符*) malloc (size) 功能:在内存的动态存储区中分配一块长度为"size" 字节的连续区域。函数的返回值为该区域的首地址。 “类型说明符”表示把该区域用于何种数据类型。(类型说明符*转载 2015-03-24 09:46:10 · 519 阅读 · 0 评论 -
fstream的使用方法
http://www.cnblogs.com/shaoguobao/archive/2011/04/15/2017413.htmlofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器转载 2015-08-31 10:25:02 · 383 阅读 · 0 评论 -
C++ vector用法
http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用转载 2015-09-05 11:05:40 · 351 阅读 · 0 评论 -
vector与算法
http://classfoo.com/ccby/article/cIBahIvector与算法 头文件中包含大量与 vector 相关的算转载 2015-09-05 22:09:03 · 875 阅读 · 0 评论 -
std::list
// template class T, class Alloc = allocatorT> > class list;列表(List)是一个允许在序列中任何一处位置以常量耗时插入或删除元素且可以双向迭代的顺序容器(Sequence container)。A list is a sequence container that supports bidirectional iterat转载 2015-09-06 09:16:56 · 1369 阅读 · 0 评论 -
std::deque
http://classfoo.com/ccby/article/ryIpwstd::deque// template class T, class Alloc = allocatorT> > class deque;双端队列(Double-ended queue,缩写为Deque)是一个大小可以动态变化(Dynamic size)且可以在两端扩展或收缩的顺序容器。转载 2015-09-06 11:36:52 · 524 阅读 · 0 评论 -
std::forward_list
http://classfoo.com/ccby/article/5wWLx// template class T, class Alloc = allocatorT> > class forward_list;正向列表(Forward list)是一个允许在序列中任何一处位置以常量耗时插入或删除元素的顺序容器(Sequence container)。A forw转载 2015-09-05 17:12:19 · 1908 阅读 · 0 评论 -
C++中static_cast和dynamic_cast强制类型转换
转载地址:http://blog.youkuaiyun.com/qq_26849233/article/details/62218385一、static_cast关键字(编译时类型检查)用法:static_cast (expression ),该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性,它主要有如下几种用法:转载 2018-05-03 21:15:32 · 211 阅读 · 0 评论