C++
文章平均质量分 57
searchwang
这个作者很懒,什么都没留下…
展开
-
静态成员方法只能调用静态成员方法和静态成员变量。
and1,mem_func2,memref_func3,ptr_func原创 2014-09-29 14:58:14 · 663 阅读 · 0 评论 -
常量指针和指针常量有什么区别
int a;int * const p = &a //指针常量,*p可以修改*p = 8;(OK) p不可以修改 p++(ERROR)int a,b;const int *p = &a;//常量指针 *p不可修改 *p = 8;(ERROR)转载 2014-06-12 14:20:08 · 381 阅读 · 0 评论 -
解释下const引用形参?
转自百度百科解释下const引用形参?如const int &ival 首先如果它只是const非引用形参那么实参是否为const对它没有影响,因为只是传递副本。而当它为非const引用形参,那么它是实参的别名,对它的修改也就是对实参本身的修改,,而当它为const 引用形参 那么将会修改实参的值 而他本身不会修改?那么引用是实参的别名而后加了个const 也就是说别名不会被修改 就转载 2014-06-12 16:13:45 · 539 阅读 · 0 评论 -
c++static数据成员和成员函数(细嚼慢咽)
c++static数据成员和成员函数转载 2014-06-12 13:37:41 · 432 阅读 · 0 评论 -
UNIX下C语言----管道
http://blog.csdn.net/wolfzone025/article/details/5741147转载 2014-06-12 17:00:22 · 510 阅读 · 0 评论 -
C/C++中volatile关键字详解
1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier is a hint to a compiler that转载 2014-06-12 14:25:15 · 630 阅读 · 0 评论 -
C++类中的static数据成员,static成员函数
C++类中谈到static,我们可以在类中定义static成员,static成员函数!C++primer里面讲过:static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联!这句话可能比较拗口,其实可以这么理解:每个static数据成员可以看成是类的一个对象,而不与该类定义的对象有任何关系!下面我们就来具体转载 2014-06-12 13:20:29 · 318 阅读 · 0 评论 -
C++回顾之深浅拷贝、禁止拷贝、空类的默认成员
牛文共赏http://blog.csdn.net/ab198604/article/details/19125419转载 2014-06-11 22:54:45 · 319 阅读 · 0 评论 -
C++赋值运算符重载
不少知识点在一个类里面没有定义(重载)“=”(赋值运算符)时,那么编译器会生成一个默认的赋值函数。它实现对象成员间的一一赋值,实现的是一个浅拷贝(logic copy)。当数据成员里面如果有指针,则编译器默认的赋值运算符不能满足要求,会出现内存泄露。浅拷贝:通过对象之间的一一赋值,使得对象中的指针指向同一块内存,使得出现了以下三个问题:(1.两次析构同一块内存,系统崩溃转载 2014-06-11 23:04:53 · 413 阅读 · 0 评论 -
深入理解C++中的mutable关键字(牛逼)
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的转载 2014-06-12 13:51:23 · 394 阅读 · 0 评论 -
sigset_t
信号集及信号集操作函数:信号集被定义为一种数据类型。typedef struct {unsigned long sig[_NSIG_WORDS];} sigset_t信号集用来描述信号的集合,linux所支持的所有信号可以全部或部分的出现在信号集中,主要与信号阻塞相关函数配合使用。下面是为信号集操作定义的相关函数:int sigemptyse转载 2014-06-10 21:37:51 · 792 阅读 · 0 评论 -
linux clone
1 概述 1.1 线程的定义 传统的Unix进程概念在开发有分布式系统中的许多应用时已经显得力不从心(有时连简单的窗口响应问题都很难做好)。这些问题的最好解决之道就是线程,线程推 广了进程的概念使一个进程可以包含多个活动(或者说执行序列等等)。如今,由于线程概念的普及,在UNIX系统中已经普遍实现了线程机制,开发并发应用的程序员现在也可以广泛接触到线程的函数库了。 使用线程的优点在于:转载 2014-06-10 20:54:15 · 906 阅读 · 0 评论 -
linux中fork()函数详解 雄文
http://blog.csdn.net/jason314/article/details/5640969一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数转载 2014-06-10 19:38:27 · 951 阅读 · 0 评论 -
linux下如何用GDB调试c++程序
GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能:启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。可转载 2014-06-11 13:25:14 · 364 阅读 · 0 评论 -
invalid conversion from ‘void*’ to ‘void* (*)(void*)’ 问题解决
pthread.cpp: In function ‘void thread1(char*)’:pthread.cpp:11: error: invalid conversion from ‘const void*’ to ‘void*’pthread.cpp:11: error: initializing argument 1 of ‘void pthread_exit(void*)’原创 2014-06-11 11:25:08 · 27430 阅读 · 4 评论 -
看懂这个例子中信号相关的所有函数是必要的,很必要!特别是例子中的
pthread_join编辑函数pthread_join用来等待一个线程的结束。目录1函数简介2函数应用▪ linux中的应用▪ pthread_join的应用3使用范例1函数简介编辑头文件 : #include 函数定义: int pth转载 2014-06-10 22:43:06 · 391 阅读 · 0 评论 -
linux-多线程
http://blog.csdn.net/lanyan822/article/details/7586845大牛文章linux 多线程转载 2014-06-10 17:13:59 · 354 阅读 · 0 评论 -
recv()
没收到信息会阻塞到这一句。原创 2014-06-15 14:42:51 · 418 阅读 · 0 评论 -
Boost::Serialization试用手记
对于核心数据相对比较集中的应用程序来说,serialization机制可以直接充当文档保存与打开功能的实现工具,这也是很多成熟的应用程序framework都提供serialization支持的原因但是个人认为,serialization最精彩的用处在于保存现场,比如在探索性的科研应用程序开发过程中,很可能一部分算法已经固定下来,其余的有待进一步探索,而确定下来的部分有可能十分time cons转载 2014-10-21 17:42:08 · 683 阅读 · 0 评论 -
Linux静态库和动态库的分析
库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0,由于程序连接默认以.so为文件后缀名。所以为了使用这些库,通常使用建立符号连接的方式。 ln -s libhello.so.1.0 libhello.so.1 ln -s转载 2014-06-18 16:19:28 · 282 阅读 · 0 评论 -
C++中的virtual
参考资料:http://www.programfan.com/article/2782.html作为通常的原则,如果一个类定义了虚函数,那么它的析构函数就应当是virtual的。因为定义了虚函数则隐含着:这个类会被继承,并且会通过基类的指针指向子类对象,从而得到多态性。”,因此基类的析构函数是否为虚将决定子类的对象是否被析构。虚函数是C++中用于实现多态(polymorphism)的机制。转载 2014-06-18 11:30:52 · 301 阅读 · 0 评论 -
一个web服务器的实现(下)
/* ------------------------------------------------------ *204 205 process_rq( char *rq, int fd )206 2转载 2014-06-17 10:01:25 · 394 阅读 · 0 评论 -
一个web服务器的实现(上)
客户端(浏览器)与web服务器之间的交互主要包含客户的请求和服务器的应答。请求和应答的格式在超文本传输协议(HTTP)中有定义。HTTP协议使用纯文本。例如:$telnet www.ouc.edu.cn 80Trying 211.64.150.68...Connected to www.ouc.edu.cn(211.64.150.68)Escape characte转载 2014-06-17 10:00:31 · 583 阅读 · 0 评论 -
MySQL的C++封装
最近的项目数据库管理系统从SQL SERVER2000迁移到了MySQL上来,之前基于ADO的连接方式连接上SQL SERVER,使用MySQL数据库管理系统之后,直接在MySQL的C语言的API上以面向对象的方式封装实现了数据库的创建,表的创建,数据库的读写操作快速搭建原型,目前没有添加连接池模块和事务处理。1.MySQL的特性使用C和C++编写,并使用了多种编译器进行测试,保证源代码的转载 2014-06-16 21:07:49 · 542 阅读 · 0 评论 -
linux c++连接mysql示例
编译和连接程序 MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项. 1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项. $ mysql_config --libs 2. --cflags 选项 - 使用必要的include文件的选项等等.转载 2014-06-16 20:22:47 · 350 阅读 · 0 评论 -
html table宽度设置,本篇方法成功解决了我徒手写html的问题
设置table的td宽度,不随文字变宽 (2011-06-27 14:57:46)转载▼页面中table宽度设置width="600px"之后,宽度仍然不是固定的,文字太长后不换行,把table都撑变形了。 解决办法: table 设置 宽度,绝对宽度和相对都可以 table-layout:转载 2014-06-03 09:51:08 · 1234 阅读 · 0 评论 -
gethostname()与gethostbyname()
gethostname()int main(){char name[65];gethostname(name, sizeof(name));printf("hostname = %s\n", name);}gethostbyname()原创 2014-06-14 22:10:19 · 581 阅读 · 0 评论 -
关于socket 的accept()
当执行accept()函数时,进程会在该句阻塞,直到监听到链接原创 2014-06-14 21:45:16 · 618 阅读 · 0 评论 -
关于waitpid()中的WNOHANG
WNOHANG 拆解为 W NO HANG,即不阻塞模式。原创 2014-06-14 21:43:43 · 11216 阅读 · 1 评论 -
行走无疆 C++ 连接mysql等数据库
现在正做一个接口,通过不同的连接字符串操作不同的数据库。要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多。通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法。可以通过2种方法实现。 第一种方法是利用ADO连接,第二种方法是利用mysql自己的api函数进行连接。第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据转载 2014-06-16 20:58:08 · 1039 阅读 · 0 评论 -
fcntl和select函数彻底搞明白
fcntl和select函数彻底搞明白 第一、fcntl函数详细使用 fcntl有强大的功能,它能够复制一个现有的描述符,获得/设置文件描述符标记,获得/设置文件状态标记,获得/设置异步I/O所有权,获得/设置纪录锁。当多个用户共同使用,操作一个文件的情况,Linux通常采用的方法就是给文件上锁,来避免共享资源产生竞争的状态。fcntl文件锁有两种类型:建议性锁和强制转载 2014-06-15 18:22:52 · 1342 阅读 · 0 评论 -
linux中select()函数分析
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式转载 2014-06-15 21:14:02 · 339 阅读 · 0 评论 -
一个有错的文章但是仍然有很强的学习点的文章
原帖链接不让贴一个建立线程时常见的问题:invalid conversion from `void*' to `void*(*)(void*)写程序,出错误,在CSDN博客上看到了前辈写的文章。作者:futuredaemon in BUPTvoid main_thread ( void *ptr ){char *message1 = "Thr转载 2014-06-11 11:28:06 · 501 阅读 · 0 评论 -
字符串常量指针问题
采用指针存储字符串,其实质就是把字符串的首地值附给基类型为char的指针变量,从而可以从字符串首元素开始对字符串进行操作,这里面也存在一点问题. 用这个类子给大家解释解释. int main() { char *p="hello world"; p[0]='H';转载 2014-06-11 10:43:24 · 298 阅读 · 0 评论 -
关于main()内变量,局部变量与全局变量
C c++ 中 main()函数内的变量 是属于全局变量还是局部变量呢2011-09-12 01:40俊逸致 | 分类:C/C++ | 浏览1080次分享到:2011-09-12 01:47提问者采纳是局部变量,任何函数内部的变量都是局部的;声明全局变量,要在头文件后面定义;如果是多文件,那么没有定义外部变量而要引用外部变量转载 2014-05-20 17:50:19 · 2015 阅读 · 0 评论 -
c++中 string 类的find函数的用法(百度知道)
string类的查找函数: int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置int find(const char *s, int pos, int n) const;//从pos开始查找字符串s转载 2014-05-20 16:55:13 · 1748 阅读 · 0 评论 -
几个技术不错的技术网站
sourceforgegooglecode原创 2014-05-20 16:45:57 · 369 阅读 · 0 评论 -
segment fault 理解
1,内存访问错误。如下标访问越界。2,权限访问错误。原创 2014-05-20 10:42:16 · 402 阅读 · 0 评论 -
size_type、size_t、different_type以及ptrdiff_t
size_type 在标准库string类型中,最容易令人产生误解就是size()成员函数的返回值了,如果不深入分析的话,大多人都会认为size()的返回值为int类型,其实不然。事实上,size操作返回的是string::size_type类型的值。 那怎样理解size_type这一类型呢,我引用《C++ Primer》一段原文简单解释一下: string类类型和许多其他转载 2014-05-20 16:43:58 · 358 阅读 · 0 评论 -
记录几个用到的字符串处理函数。
strtok():c风格字符串原创 2014-05-20 16:30:06 · 388 阅读 · 0 评论