
CC++
文章平均质量分 93
zb872676223
pc软件开发
展开
-
#pragma once介绍
编译器linkercompilerstructinclude语言#pragma once介绍 pragma指令简介在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作。一.message参数转载 2013-06-14 13:01:13 · 842 阅读 · 0 评论 -
C++中四种类型转换以及const_cast是否能改变常量的问题
C++中四种类型转换以及const_cast是否能改变常量的问题分类: C/C++基础2013-04-30 09:42 203人阅读 评论(0) 收藏 举报类型转换const_castwe have four specific casting operators:dynamic_cast, reinterpret_cast, static_cast and co转载 2013-06-14 17:59:34 · 657 阅读 · 0 评论 -
C++的引用与const指针的关系以及各种传递方式
首先我们知道 const int *p 与 int const *p 是一样的,即 *p 是常量;而 int * const p 跟上面是不一样的,即 p 是常量;我们知道引用只是一个别名,与变量共享存储空间,并且必须在定义的时候初始化,而且不能再成为别的变量的别名,这让我们想到什么呢,貌似跟 int * const p 的性质很像。其实引用的底层就是用const指针来实转载 2013-06-14 18:01:31 · 532 阅读 · 0 评论 -
C++标准转换运算符const_cast
http://blog.youkuaiyun.com/addfourliu/article/details/7747087【转自】:http://www.cnblogs.com/ider/archive/2011/07/22/cpp_cast_operator_part2.htmlC++标准转换运算符const_cast前面讲了C++继承并扩展C语言的传统类型转换方式,最后留下了一转载 2014-04-29 13:14:55 · 487 阅读 · 0 评论 -
C/C++程序员需要注意的11个知识点(转)
下面的这些要点是对所有的C++程序员都适用的。我之所以说它们是最重要的,是因为这些要点中提到的是你通常在C++书中或网站上无法找到的。如:指向成员的指针,这是许多资料中都不愿提到的地方,也是经常出错的地方,甚至是对一些高级的C++程序员也是如此。这里的要点不仅仅是解释怎样写出更好的代码,更多的是展现出语言规则里面的东西。很显然,它们对C++程序员来说是永久的好资料。我相信这一篇文章会使你收转载 2014-04-30 15:17:17 · 637 阅读 · 0 评论 -
C++中的虚函数的隐藏规则
在编程中遇到一个奇怪的问题, 在继承类无法调用基类中定义的一个public函数, 编译时总是说函数调用的参数表不正确, 很是郁闷. 在网上搜索之后, 发现原因是: 在基类中有定义有多个同名的函数(例如exec), 但参数表是不同的, 其中一个是虚函数, 在继承类中实现. 这样的话, 在继承类中就无法调用基类中定义的其他exec函数(只有继承类中重载的exec函数才可调用), 这是由C++中的转载 2014-04-29 17:35:59 · 688 阅读 · 0 评论 -
<C++实践系列>C++中的虚函数(virtual function)
作者:张笑猛原文出处:http://objects.nease.net/1.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:[html] view plaincopyprint?class A { public: virtual void fo转载 2014-03-31 14:16:26 · 526 阅读 · 0 评论 -
reinterpret_cast 百度百科
reinterpret_cast是C++里的强制类型转换符。目录1简介2用法1简介编辑reinterpret_cast (expression)type-id 必须是一个指针、引用、算术类型、函数指针或者成员指针。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,在把该整数转换成原类型的指针,还可以得原创 2014-04-01 17:23:53 · 746 阅读 · 0 评论 -
结构体赋值是覆盖的问题
#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"typedef struct UploadUserInfo{ char BirthDate[8]; char nation[3]; char address[70];}upload_element;c转载 2014-04-02 13:49:56 · 1232 阅读 · 0 评论 -
C++的异常处理
分类: C++技术总结 2012-04-10 22:49 91人阅读 评论(0)收藏 举报c++编程工作javacsocketsC++ try catch() throw 异常处理2011-08-06 21:16其它很多程序员一样,本书的主人公阿愚也是在初学C++时,在C++的sample代码中与异常处理的编程方法初次邂逅的,如下:转载 2014-04-02 13:53:17 · 547 阅读 · 0 评论 -
static_cast和reinterpret_cast
[cpp] view plaincopyprint? static_cast和reinterpret_cast揭秘 收藏 本文讨论static_castreinterpret_cast reinterpret_cast可以转换任意一个32bit整数,包括所有的指针和整数。可以把任何整数转成指针,也可以把任何指针转成整数,以及把指针转化为任意类型的指针,威力最为强大!但不能将转载 2014-04-18 08:55:42 · 540 阅读 · 0 评论 -
pthread_exit
线程通过调用pthread_exit函数终止执行,就如同进程在结束时调用exit函数一样。这个函数的作用是,终止调用它的线程并返回一个指向某个对象的指针。void pthread_exit(void* retval);pthread_exit() 参数#include #include #include void *print_message_function(转载 2014-04-18 09:13:44 · 704 阅读 · 0 评论 -
pthread_join的使用方法
http://blog.sina.com.cn/s/blog_693301190100xou4.htmlpthread_join使一个线程等待另一个线程结束。代码中如果没有pthread_join主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行。所有转载 2014-04-18 09:22:00 · 1727 阅读 · 0 评论 -
从RGB色转为灰度色算法
转自:http://hi.baidu.com/tuhome/blog/item/33721fdbfcac21e538012fed.html从RGB色转为灰度色算法2010-03-2614:36----本文摘自作者ZYL910的博客一、基础 对于彩色转灰度,有一个很著名的心理学公式: Gray = R转载 2014-04-18 09:32:57 · 634 阅读 · 0 评论 -
[转载]互斥锁
原文地址:互斥锁作者:天一恒列出了用来处理互斥锁的函数。表 4–3互斥锁的例程操作相关函数说明初始化互斥锁pthread_mutex_init 语法使互斥锁保持一致pthread_mutex_consistent_np 语法锁定互斥锁pthread_mutex转载 2014-04-18 09:35:42 · 802 阅读 · 0 评论 -
pthread_exit()
pthread_exit函数 原型:void pthread_exit(void *retval) 用法:#include 功能:使用函数pthread_exit退出线程,这是线程的主动行为;由于一个进程中的多个线程是共享数据段的,因此通常在线程退出之后,退出线程所占用的资源并不会随着线程的终止而得到释放,但是可以用pthread_join()函数(下篇博客中转载 2014-04-18 09:14:26 · 578 阅读 · 0 评论 -
pthread_create()
http://blog.youkuaiyun.com/youbang321/article/details/7815707pthread_create函数 原型:int pthread_create((pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg)转载 2014-04-18 09:17:05 · 529 阅读 · 0 评论 -
pthread_create用法
pthread_create用法(2012-03-01 15:36:21)转载▼标签:杂谈分类:嵌入式 linux2转载自 xiapingwen最终编辑 xiapingwenlinux下用C开发多线程程序,Linux系统下的多线程遵循POSIX线程接口,称为pthread。#incl转载 2014-04-18 09:33:52 · 747 阅读 · 0 评论 -
[转载]互斥锁
有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下:pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;在LinuxThreads实现中,pthread_mutex_t是一个结构,而PTHREAD_MUTEX_INITIALIZER则是一个结构常量。转载 2014-04-18 09:36:29 · 562 阅读 · 0 评论 -
虚继承之单继承的内存布局
C++2.0以后全面支持虚函数与虚继承,这两个特性的引入为C++增强了不少功能,也引入了不少烦恼。虚函数与虚继承有哪些特性,今天就不记录了,如果能搞了解一下编译器是如何实现虚函数和虚继承,它们在类的内存空间中又是如何布局的,却可以对C++的了解深入不少。这段时间花了一些时间了解这些玩意,搞得偶都,不过总算有些收获,嘿嘿。先看一段代码class A{ virtual a转载 2014-04-18 16:37:21 · 415 阅读 · 0 评论 -
[转]我对C++内存分配方式的一点看法
作者:骆驼在C++中,内存分成5个区 : 堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。堆,就是那些由new分配的内存块,他转载 2014-04-18 16:38:39 · 485 阅读 · 0 评论 -
STL中的常用的vector,map,set,Sort用法
这是刚刚在网上转来的,才粗粗扫了一遍,感觉对我的数据挖掘非常有用,先粘过来,一会再认真看……我好奇怪,我喜欢看自己博客上的东西,就是……好东西先占着,哈哈!C++的标准模板库(Standard Template Library,简称STL)是一个容器和算法的类库。容器往往包含同一类型的数据。STL中比较常用的容器是vector,set和map,比较常用的算法有Sort等。一转载 2014-05-05 13:57:21 · 503 阅读 · 0 评论 -
Windows Socket五种I/O模型——代码全攻略
如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。程序员应该对自己的应用需求非常明确,而且综合考虑转载 2014-04-04 10:43:57 · 489 阅读 · 0 评论 -
关于C++的模板操作
看了一篇关于模板的文章, 写的不错, 只是在编译的时候有点小问题做了修改, 添加了一些补充性的概念, 以便方便我更加理解模板的概念,感谢原作者提供的好文章, 原文地址:http://prglab.com/cms/pages/c-tutorial/advanced-concepts/templates.php辅助文章可以参考:http://www.kuqin.com/language/20090转载 2014-03-24 16:00:43 · 484 阅读 · 0 评论 -
虚函数 纯虚函数 虚基类说明
原文:http://www.cnblogs.com/ms-frank/archive/2008/01/16/1041310.html虚基类在说明其作用前先看一段代码[cpp] view plaincopyprint?class A { public: int iValue; }; class B:public A { publi转载 2014-03-24 16:01:23 · 551 阅读 · 0 评论 -
C++的static关键字
原文地址:http://wenku.baidu.com/view/a2827d37ee06eff9aef80741.html部分自己增加C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键转载 2014-03-24 16:02:13 · 420 阅读 · 0 评论 -
const char * 和 std::string.c_str()是个危险的东西!
今天中招了!有一个类,内部有个 const char * 类型的变量 word, 该类构造函数用一个string来初始化word,于是我想都没想就这么写:1MyClass(std::string inputStr){2 this->word = inputStr.c_str();转载 2014-05-06 16:54:59 · 1070 阅读 · 0 评论 -
关于学习C++和编程的50个观点
在查资料的过程中,发现了这篇文章,觉得对学习编程的人很有帮助,所以就把它转过来了。呵呵! 关于学习c++和编程的50个观点:1.把c++当成一门新的语言学习(和c没啥关系!真的。);2.看《thinking in c++》,不要看《c++变成死相》;3.看《the c++ programming language》和《inside the c++ obj转载 2014-04-18 16:27:59 · 455 阅读 · 0 评论 -
C++内存管理秘籍
C++内存分配秘籍—new,malloc,GlobalAlloc详解 _______只为因内存分配而无法入眠的程序员 一。关于内存 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个转载 2014-04-18 16:29:33 · 605 阅读 · 0 评论 -
C++ virtual 析构函数
copy自:http://zxjgoodboy.blog.sohu.com/61482463.html在此基础上稍作修改C++中虚析构函数的作用我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:#include using namespace std;class ClxBase{p转载 2014-03-24 15:59:08 · 465 阅读 · 0 评论 -
二维数组按列序号排序 面试经典
public class ArrayOrderBy { public static void main(String[] args) { int array[][] = new int[][] { { 3, 34, 68, 85, 9, 12, 78 }, { 7, 72, 83, 57, 56,转载 2014-05-06 16:41:57 · 1013 阅读 · 0 评论 -
基于C++浮点数(float、double)类型数据比较与转换的详解
浮点数在内存中的存储机制和整型数不同,其有舍入误差,在计算机中用近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。所以浮点数在运算过程中通常伴随着因为无法精确表示而进行的近似或舍入。但是这种设计的好处是可以在固定的长度上存储更大范围的数。1、将字符串转换为float、double过程转载 2014-05-07 11:46:17 · 702 阅读 · 0 评论 -
基于C++中常见编译错误的总结详解
在日常编码过程中会遇见各种编译错误,本文对常见的编译错误进行分析总结。(基本的编译错误在这里不列举,后续后持续更新)1、error c101008a解决方法该错误出现在项目升级过程中会出现,比如说项目从vs2008升级到vs2010.解决办法:在项目上点右键,清理(Clean),重新编译,问题解决2、error C2252解决方法该错误主要在项目从vs2008升级到vs转载 2014-05-07 11:48:13 · 1082 阅读 · 0 评论 -
关于std:auto_ptr
很多人听说过标准auto_ptr智能指针机制,但并不是每个人都天天使用它。这真是个遗憾,因为auto_ptr优雅地解决了C++设计和编码中常见的问题,正确地使用它可以生成健壮的代码。本文阐述了如何正确运用auto_ptr来让你的代码更加安全——以及如何避免对auto_ptr危险但常见的误用,这些误用会引发间断性发作、难以诊断的bug。1.为什么称它为“自动”指针?auto_ptr只是众多可转载 2014-04-21 16:16:16 · 525 阅读 · 0 评论 -
线程栈空间的大小
http://blog.youkuaiyun.com/cyblueboy83/article/details/7645331一直做Windows服务器向Linux平台的移植工作,对于线程的栈空间也是似懂非懂,因而出现了一些问题和总结了部分经验,供大家分享。在我的服务器上启动了286个线程后,其后的线程启动失败了,返回的错误原因是12,经查找定义如下:#define ENOMEM转载 2014-04-21 16:19:20 · 1401 阅读 · 0 评论 -
重载、覆盖、多态与函数隐藏(转贴,值得一看)
经常看到C++的一些初学者对于重载、覆盖、多态与函数隐藏的模糊理解。在这里写一点自己的见解,希望能够C++初学者解惑。要弄清楚重载、覆盖、多态与函数隐藏之间的复杂且微妙关系之前,我们首先要来回顾一下重载覆盖等基本概念。首先,我们来看一个非常简单的例子,理解一下什么叫函数隐藏hide。#include using namespace std;转载 2014-04-21 16:17:07 · 523 阅读 · 0 评论 -
ptr_vector-一个指针的容器
http://www.orcode.com/article/STL_20117335.html简介STL容器,迭代器和算法,而不是对象。值语义变得很明显的,当您尝试存储在一个标准集装箱,如指针,在一个std::vector的。你立刻感受到"阻抗失配"标准的矢量值之间的接口和存储的指针。一个额外的*(解引用)是必要的,达到指向的对象。这是烦人的,尤其是当你使用的算法。ptr_vector转载 2014-04-23 18:10:12 · 4962 阅读 · 1 评论 -
C++11新特性
C++11新特性C++11已经推出三年了(2011),编译器GCC4.7、Clang3.1在2012年已经逐渐完善,VS2013也已经支持相关特性,GCC4.8.1支持全部特性。不过新特性似乎在工业界并未得到太多应用,可能出于兼容性和稳定性的考虑吧。推出的新特性还是相当的丰富,看下面这张图就知道了。我仅仅在这里提一下相对比较容易应用的部分,包括语法上的一些扩展以及改进,lambda表达转载 2014-05-19 09:03:08 · 438 阅读 · 0 评论 -
C++标准基金会推荐:在线C++编译器
C++标准基金会是一个致力于对C++开发者社区提供支持,并促进现代C++标准在所有编译器以及平台上的理解与使用的非盈利性组织,成员包括微软、谷歌、英特尔,ARM,Oracle等公司。点这里进入基金会网站。网站有一篇博客,给出了一个推荐使用的在线编译器链接列表,翻译如下。(我发现这群人很有写广告词的天赋!)许多人没有认识到,很多网站都提供了在线使用C++编译器的功能。对C++11的支转载 2014-05-19 09:05:22 · 613 阅读 · 0 评论 -
C++标准转换运算符dynamic_cast
【转自】http://www.cnblogs.com/ider/archive/2011/08/01/cpp_cast_operator_part5.htmlC++标准转换运算符dynamic_castdynamic_cast (expression)dynamic_cast运算符,应该算是四个里面最特殊的一个,因为它涉及到编译器的属性设置,而且牵扯到的面向对象的多态性跟转载 2014-04-29 13:13:07 · 625 阅读 · 0 评论