随笔分类 -  c++学习笔记

1 2 下一页
c++的学习知识点
直接初始化和复制初始化
摘要:1、ClassTest ct1("ab");这条语句属于直接初始化,它不需要调用复制构造函数,直接调用构造函数ClassTest(const char *pc),所以当复制构造函数变为私有时,它还是能直接执行的。2、ClassTest ct2 = "ab";这条语句为复制初始化,它首先调用构造函数C... 阅读全文
posted @ 2014-08-11 15:11 老金 阅读(493) 评论(0) 推荐(0)
C++ 内连接与外连接 (转)
摘要:啥叫内连接 外连接我们知道编译的时候(假如编译器是VS),是以源文件cpp文件为单位,编译成一个个的obj文件,然后再通过链接器把不同的obj文件链接起来.简单的说,如果一些变量或函数的定义是内连接的话,链接器链接的时候就不会拿它们去与obj比较看有重复定义不,一个源文件中的extern声明的变量或... 阅读全文
posted @ 2014-07-24 14:53 老金 阅读(2227) 评论(0) 推荐(0)
转-C/C++捕获段错误,打印出错的具体位置(精确到哪一行)
摘要:转自 http://blog.chinaunix.net/uid-24098129-id-312659.htmlBy fireworks2@foxmail.com修订:2011-06-11背景知识:· 在linux/unix中的信号处理机制,知道signal函数与sigaction的区别· 段错误的概念,CPU中断处理的步骤,中断向量表的分类· 知道CPU Exception分为Fault、trap和abort,了解他们的基本区别· 段错误和浮点错误属于Fault,产生Fault时会将出错指令的地址入栈,而不是下一条将执行指令的地址· 在lin 阅读全文
posted @ 2013-02-01 14:20 老金 阅读(1509) 评论(0) 推荐(0)
关键字restrict简介
摘要:c99中新增加了一个类型定义,就是restrict。 restrict的定义是It can be applied only to pointers, and it indicates that a pointer is the sole initial means of accessing a data object. 我不知道确切应该怎么翻译,大意是restrict只对指针有用,它声明一个指针是唯一初始化访问一个数据对象。 比如,按照书上的例子:int ar[10];int * restrict restar = (int *) malloc(10 * sizeof(int));int * 阅读全文
posted @ 2013-01-05 13:38 老金 阅读(394) 评论(0) 推荐(0)
使用SMTP 和POP3 协议实现收发邮件(C/C++) (转)
摘要:SMTP协议和POP3协议就不详细阐述了 ,网上一搜索会有一大把给你解释的。下面直接贴代码:首先写一个class Sock类,这个类的功能主要是创建套接字(即int sock),用套接字來连接邮箱服务器。类里面还带有send_socket和recv_socket两个函数,其功能分别是向邮箱服务器发送协议指令和接收服务器反馈回来的信息。sock.h文件[cpp] 1 #ifndef __SOCK_H__ 2 #define __SOCK_H__ 3 4 #include <iostream> 5 #include <sys/socket.h> 6 #include < 阅读全文
posted @ 2012-11-14 13:30 老金 阅读(8562) 评论(0) 推荐(0)
C/C++中的日期和时间 time_t与struct tm
摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍 阅读全文
posted @ 2012-10-18 16:37 老金 阅读(1192) 评论(0) 推荐(0)
GDB教程详解&打印STL容器
摘要:网上一篇非常有用的文章,值得在LINUX下C++开发人员一观!学习使用了GDB一段时间后,发现它真的好强大!好用!GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调... 阅读全文
posted @ 2012-07-13 10:51 老金 阅读(8524) 评论(0) 推荐(0)
jsoncpp在linux下的配置
摘要:JSON 官方的解释为:JSON 是一种轻量级的数据传输格式。关于 JSON 更具体的信息,可参见 JSON 官网:http://www.json.org。jsoncpp 是比较出名的 C++ JSON 解析库。在 JSON 官网也是首推的。下载地址为:http://sourceforge.net/projects/jsoncpp(版本为jsoncpp-src-0.5.0)。下面开始说明配置方法:1、先下载scons:(http://www.scons.org/)(版本为scons-2.1.0)并解压; 设定环境变量 # export MYSCONS=解压的路径2、scons部署:进入sco. 阅读全文
posted @ 2012-06-14 11:32 老金 阅读(6876) 评论(2) 推荐(0)
在Ubuntu上安装并C++使用libmemcached
摘要:最近要用C++开发项目需要操作memcached,查找到libmemcached是专门为C/C++提供的memcached客户端决定用它。1. 在命令行下: wget https://launchpad.net/libmemcached/1.0/1.0.7/+download/libmemcached-1.0.7.tar.gz下载文件。2. 输入:sudo apt-get install libevent-dev 安装libevent-dev (据说这个很重要,不然libmemcached就不能运行,最好安装)3. 解压缩下载文件:sudu tar -zxvf libmemcached-1.. 阅读全文
posted @ 2012-05-24 16:44 老金 阅读(7324) 评论(1) 推荐(0)
在linux下使用c++线程池threadpool
摘要:Boost的thread库中目前并没有提供线程池,我在sorceforge上找了一个用boost编写的线程池。该线程池和boost结合的比较好,并且提供了多种任务执行策略,使用也非常简单。下载地址: http://threadpool.sourceforge.net/使用threadpool: 这个线程池不需要编译,只要在项目中包含其头文件就可以了。 例如我的threadpool.hpp文件路径(文件夹下有threadpool.hpp的路径)为/root/C++/app/threadpool-0_2_5-src/threadpool/boost,只需把这个目录下的所有文件(一个文件加一个目.. 阅读全文
posted @ 2012-05-07 12:25 老金 阅读(8557) 评论(0) 推荐(1)
C++ sizeof 使用规则及陷阱分析【转】
摘要:http://www.cnblogs.com/chio/archive/2007/06/11/778934.html摘要:鉴于sizeof为各大软件公司笔试、面试必考题,现收集sizeof的各种用法,尽量做到全面理解,其中例子希望能举一反三。提示:下文例子都经过Visual C++ 6.0验证,平台为win32 Windows. 如在其他平台或编译器上运行有不同结果,请自行查看原因。欢迎转载,转载请注明出处,谢谢.目录一、什么是sizeof二、sizeof用法三、基本数据类型的sizeof四、复杂数据类型的sizeof及其数据对齐问题五、class类型的sizeof特别探讨六、总结一、什么.. 阅读全文
posted @ 2012-05-04 18:11 老金 阅读(2965) 评论(2) 推荐(2)
C++ Primer 第二章 变量和基本类型
摘要:2.1 基本内置类型 基本内置类型是C++“自带”的类型,区别于标准库定义的类型。使用时不需要应用标准库就可以使用,我们可以理解为数字型有下面这些 整形:就是整数或者是没有小数位的数。它包括bool(0,!0), char, wchar_t(非标准英文字符用char无法全部表现所以需要这个类型来表示),short, int ,long。 整形中除了bool外其他类型可以是带符号,也可以是无符号的,无符号的取值范围不能为负,有符号取值可以有正有负,但由于有符号数所占位其中一位是符号位所以它的正数取值范围要比无符号范围小一位。 浮点型:就是带小数的数,包括float , double , lon. 阅读全文
posted @ 2012-04-28 18:09 老金 阅读(1790) 评论(1) 推荐(0)
C++ Primer 第一章 快速入门
摘要:1.1 编写简单的C++程序 任何一个都要包含一个main函数,因为这个函数是系统执行入口c++也一样,函数格式是 int main(); 和别的主要函数不同C++的主函数有且只有一个且返回一个INT类型的值。一般来说返回0表示执行成功。程序员可以不必定义return 0返回这时候系统会在编译时自动加上retuan 0;1.2 偷窥输入输出 这里指的输入输出是说从标准设备输入内容或者将内容输出到表顺设备。比如说输出字符到显示器,输出一个图片到显示器。将字符或者二进制内容输出到文件。 或者从键盘输入内容到计算机,从一个文件读取内容到系统等等。 C++提供了标准输入输出库,最常用得是iostre. 阅读全文
posted @ 2012-04-28 17:06 老金 阅读(2006) 评论(0) 推荐(0)
高手的C++学习忠告,虚心学习下~~
摘要:1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点; 6.会用Visual C++,并不说明你会C++; 7.学class并不难,templat. 阅读全文
posted @ 2012-04-26 16:31 老金 阅读(817) 评论(0) 推荐(0)
继承的访问级别
摘要:C++继承:共有,私有,保护公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。2. 私有继承(private)私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。3. 保护继承(protected)保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然. 阅读全文
posted @ 2012-04-26 15:18 老金 阅读(390) 评论(0) 推荐(0)
Ubuntu下boost库与mrpi-redis-cplusplus-client安装
摘要:工作中需要使用C++做一个服务该服务要访问REDIS缓存系统,之前是用C#做的有现成的类库可用。转到C++就没这么方便了所以决定上网搜搜资料。想要安装该客户端系统必须要装boost库,此库安装步骤如下:1. 上官方网站下载到最新版本1.49版,解压后进入目录,简单安装: ./bootstrap.sh sudo ./b2 install2. 安装的时候可能会出现下面错误,处理办法如下: 过程中会提示: patchlevel.h:没有那个文件或目录 可以这样安装: sudo apt-get install python-dev 过程中又提示: bzlib.h:没有那个文件或目录 可以这样安装: . 阅读全文
posted @ 2012-04-23 16:57 老金 阅读(2527) 评论(0) 推荐(0)
C++ 中list、vector和deque比较[转]
摘要:http://blog.csdn.net/xiaolajiao8787/article/details/5882609Ladies & Gentlemem:大家好,这里是首届C++模板武道会的现场,本次武道会由beyond_ml做东,第一场解说员为beyond_ml。由于首次举办这样规模空前的盛会,难免有疏漏之处,还请各位高手不吝赐教。Beyond_ml有理啦。同时也欢迎各位大虾把此次武道会看做是一个虚基类,不断继承,派生出新的比赛。比赛开始:首先介绍比武参赛者:Vector:金山词霸翻译成:矢量,向量等,C++容器模板中的大哥大,就像是一个加强版的队列,之所以这样说,是因为它不但有队 阅读全文
posted @ 2012-04-13 17:51 老金 阅读(5167) 评论(0) 推荐(1)
c++类与对象注意点
摘要:1. 类数据成员定义时不能初始化,比如:class a{ int i; int j = 1; //错误,不能初始化值}2. 类的构造函数对自身数据成员包括初始化和赋值,初始化是:i(1),j(1),赋值是在构造函数体内的显示给值,对有类型数据来说二者效果一样,而有些类型数据只能做初始化而不允许赋值。例如:class a{ private: int i; int j; const int k; public: a(int d):i(1),j(2),k(3) { // 函数体叫赋值操作而不是初始化,本例中K在这里不再允许赋值 }}3. 类和函数一样,可以先声明再定义,未定义之前声明的类叫不完全类型 阅读全文
posted @ 2012-01-12 15:47 老金 阅读(697) 评论(0) 推荐(0)
Posix多线程编程学习笔记(转)
摘要:Posix多线程编程学习笔记(一)—线程基础(1)一.什么是线程 在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。 典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。二.线程的优点(1) 通过为每种事件类型的处理分配单独的线程,能够简化处理异步时间的代码。(2) 多个线程可以自动共享相同的存储地址空间和文件描述符。(3) 有些问题可以通过将其分解从而改善整个程序的吞吐量。(4) 交互的程序可以通过使用多线程实现相应时间的 阅读全文
posted @ 2012-01-11 17:37 老金 阅读(2025) 评论(0) 推荐(1)
c++中的声明与定义
摘要:C++是一种复杂的计算机语言,很多在现代高级语言中已经不需要程序员操心的事情(其实这些事情并没有消失而是由语言本身和运行环境替我们做了)在C++中还需要我们处处留意,以免你写的程序编译不通过或者留下潜在BUG。 了解C++的人知道它里面有两个术语:声明,定义 很多新出现的高级语言对二者的界面很模糊,申明==定义,但C++中二者不同,而且需要了解他们的概念,否则你的程序很可能无法编译通过,现在我们来了解一下他们。 定义:就是创建一个对象,并且为他非配对象资源,这个概念比较容易理解。比如说 int a = 1; stirng b("abcd"); 定义是必须的,如果没有定义就无 阅读全文
posted @ 2011-12-30 14:08 老金 阅读(2176) 评论(0) 推荐(0)

1 2 下一页