
C plusplus
就呆在云上
自信人生二百年会当水击三千里
展开
-
visual c++ 2008/2010/2012/2013/2015进行MySQL编程(ODBC)-- (四) 终极实现 之 派生CRecordset 中
Visual C++ 2008进行MySQL编程这个系列已经出了好几篇了,如下:visual c++ 2008进行MySQL编程(ODBC) -- (一) 套装安装visual c++ 2008进行MySQL编程(ODBC) --(二) CDatabase操作数据库visual c++ 2008进行MySQL编程(ODBC) --三 查询数据库visual c++ 2008进行MySQL编程(原创 2012-06-05 21:23:42 · 4951 阅读 · 2 评论 -
intel线程库tbb的使用
首先下载:http://www.threadingbuildingblocks.org/uploads/77/111/2.1/tbb21_20080605oss_win.zip当前是2.1版本解压到c盘,打开vs2005,设置vc++的项目目录include:C:/tbb21oss_win/include执行文件:C:/tbb21oss_win/ia32/vc8/bi原创 2008-09-01 18:41:00 · 12549 阅读 · 4 评论 -
孟岩:什么是高级C++?
什么是高级C++?——软件工业化时代的C++价值观孟岩《程序员》杂志社开门见山主要论点: 1. C++本质上是一种重“创新”而轻“生产”的语言,到目前为止仍然是主流语言中最适合技术创新的一个; 2. 1995年之前,整个软件产业处于“创新为王”的阶段,C++是最适合这个阶段的语言,这是C++红极一时的大背景和根本原因。 3. 1995年发生了一系列影响深远的转载 2008-09-02 13:37:00 · 3028 阅读 · 0 评论 -
LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup编译出错的解决方法
这个是一个vs2005上面的编译错误对于正常的标准的c或者c++main那么Project->properties->linker->system->subsystem 里面的设置是console;但是非标准的main则应该该成相应的,比如windows,wince等等一般的先尝试windows,全名是:Windows (/SUBSYSTEM:WINDOWS)hoho原创 2008-07-09 20:40:00 · 14220 阅读 · 7 评论 -
修改类的静态成员的共享属性
类的static成员,属于类,而不属于对象,因此,每一个类的对象都可以使用,使用模板改变这一特性。代码如下:vs2008 #include using namespace std;template class T> class Base {public: static int count; Base();};template class T>int BaseT>::原创 2008-01-10 17:16:00 · 2060 阅读 · 0 评论 -
过去的2007,我的2007
过去的2007,我的2007 过去的2007,我的20072007年,本名年,所以我和婆婆现在的qq签名都是“顺利渡过了我的本命年!”。本命年,确实有点灵验,或许是没有穿红内裤的缘故吧,很不顺利,主要是身体上的不顺,一直就不怎么好。大病小病没有断过,可能原创 2008-01-08 19:13:00 · 1144 阅读 · 2 评论 -
c/c++中如何更改一个指针值
这个问题记得以前已经谈论这个问题,再来简单的说一下:如果是在一个作用域里面,就是直接改变他的指向就可以了,比如重新分配一个地址空间。或者指向另外一个地址空间。这个很简单,就不说了。如果要在另外一个函数里面来改变一个地址空间呢?两种方法,一种是使用指针参数改变,另一种是return方法!那么就要使用多一级指针,如果是2重指针,就要使用3重指针,同时在这个函数里面,分配指针的时候一原创 2008-01-05 16:31:00 · 4813 阅读 · 0 评论 -
C/C++笔试题目大全
链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3->2->1。 最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续遍历。源代码如下: 1. struct linka {原创 2008-01-03 22:26:00 · 2062 阅读 · 0 评论 -
ATL/COM 活动模板库学习步骤
ATL/COM 活动模板库 首先声明本人并非COM/ATL高手,尽管本人接触他们已经有4年了,但是因为工作中的一些原因一直未能深入研究和广泛的实际的使用它们。不过回想学习它们的痛苦经历,实在是有点不堪回首。在此仅以此文和大家探讨一下学习它们的路径,以让后来人少走弯路。我个人认为学习COM是一件不简单的事情,只有一步一个脚印踏踏实实的理解每个观点和理论才能真正懂得其精髓。那样才能在发生错误的转载 2008-01-02 21:13:00 · 2656 阅读 · 2 评论 -
C++ 类函数经验二则
自己水平菜,找书看得到如下二则:C++ 类函数处理经验二则一、类里面的函数指针类中的函数指针,所对应的不是函数,而是一个变量,c++标准一直没有对此发表具体的标准。如下,他既然是变量当然就不可以赋值函数的地址:#include #include using namespace std; void fun() { cout "asdf" } c原创 2008-03-24 18:10:00 · 2799 阅读 · 0 评论 -
编译时计算、模板元计算,还有递归在模板中的使用
// 编译时计算、模板元计算,还有递归在模板中的使用#include "stdafx.h"#include using namespace std;//实现1..N的递加template class my {public: enum {fare = my::fare + N}; };template {public: enum {fare = 0};};//实现power(N,原创 2007-12-28 10:12:00 · 1112 阅读 · 0 评论 -
unsigned char与char的区别
今天学习一点轻松的内容。有意思,今天发现我这里写的一篇文章居然没有了,或许是自己根本就没有发上来吧就补充一下:两者关系很简单,unsigned对应的数值是0~255,而signed是-128~127查看msdn的话就可以看到了:Character values of type unsigned char have a range from 0 to 0xFF hexadecim原创 2007-12-28 10:15:00 · 2189 阅读 · 0 评论 -
从模板和友元看类模板的使用
// 模板友元.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include iostream>using namespace std;template class T>class Box;template class T>BoxT> operator+ (const BoxT> &, const BoxT> &);template class T>Box原创 2007-12-26 20:10:00 · 1010 阅读 · 0 评论 -
套嵌模板,成员模板,模板的使用
模板的套嵌可以理解成在另外一个模板里面定义一个模板。以模板(类,或者函数)作为另个模板(类,或者函数)的成员 就是成员模板。首先成员模板是不可以作为virtual的,这个是由于他的虚函数表使用不灵活。我们看一个套嵌的例子,先看函数的使用,typeid(A).name()返回的是A的类型信息,用name函数返回,A可以是一个对象,也可以是一个对象类型。而且,类定义的时候,成员函数里面是可原创 2007-12-25 12:53:00 · 1258 阅读 · 0 评论 -
面试题: 十进制INT数字转化为16进制字符串、实现字符串和数字的相互转化
自己练练了手,写了两个程序: 第一个:十进制的数字转化为16进制 int main(int argc, _TCHAR* argv[]){ int a = 100000000, i = 0, b; int c[8] = {0}; printf("%10.4x ", a); while (a) { b = a - (a>原创 2007-12-18 16:50:00 · 4018 阅读 · 0 评论 -
网易笔试题一道
今天在网上溜达看到一篇不错的文章,网址是:http://blog.csdn.net/chinainvent/archive/2006/10/13/1332494.aspx题目如下: 如图: 设“1”的坐标为(0,0) “7”的坐标为(-1,-1) 编写一个小程序,使程序做到输入坐标(X,Y)之后显示出相应的数字。 我的程序,没有怎么调整,很粗糙,不过,实现就行了原创 2008-09-06 19:02:00 · 1841 阅读 · 2 评论 -
const_cast和static_cast
const_cast和static_castStatic_cast可以对对象也可以对指针也可以对引用,但是const_cast只可以对指针和引用使用,后者不可以对对象用,如果你要把一个const值转化为非const值只能用隐式执行或通过使用static_cast、C 样式转换或函数样式转换执行。比如: const int aa = 10; //int bb = const原创 2008-06-26 18:09:00 · 3807 阅读 · 1 评论 -
类里面的static和函数指针的特殊事项
#include using namespace std;int print() { cout "YYYYYYYYY/n";}class tt{ public: static int (*pp)(); static int *p; int v() { this->pp(); //static can be ivoked原创 2008-10-31 19:55:00 · 1668 阅读 · 0 评论 -
visual c++ 2008/2010/2012/2013/2015进行MySQL编程(ODBC) --三 查询数据库
前面两讲说到了,安装MySql数据库,安装ODBC驱动以及使用CDatabase操作数据库的基本操作比如Add del edit,链接如下:visual c++ 2008进行MySQL编程(ODBC) -- (一) 套装安装 visual c++ 2008进行MySQL编程(ODBC) --二 操作数据库visual c++ 2008进行MySQL编程(ODBC) --三 查询数据库v原创 2012-06-01 21:55:39 · 7640 阅读 · 19 评论 -
Qt 5.3更新无数,更改C++控制台输出最为赞
本人觉得有了这个更新,Qt Creator可谓几乎没有缺点了,起码仅仅开发C/C++,是不用再去安装VS了。Qt 5.3放出,更新无数,具体参考:http://qt-project.org/wiki/New-Features-in-Qt-5.3有一个功能,属于超级好的改进了,就是C++控制台程序的输出,不再是弹出一个CMD,执行程序,而是直接在应用程序输出结果:这个修改,让我振奋不已,以前弹出CM原创 2014-05-23 19:07:32 · 6729 阅读 · 11 评论 -
C++ 函数模板特化导致的多重定义链接错误
函数模板,一般都是放在头文件里面,所以有些时候,我也会做一个特化,也放在这个头文件里面,当这个头文件出现多次的包含之后,就会出现链接多重定义的错误。原创 2013-08-01 10:52:46 · 4483 阅读 · 0 评论 -
C++ STL 容器自定义内存分配器
很多时候我们不要用默认的allocator的实现,我们需要自己的内存配置,所以我们可以做自己的分配器,这里说说必须要有的一些注意事项,因为有些是我犯错过的。需要有自己的一些类型定义比如pointer需要做自己的allocate和deallocate一定要有rebind实现,如果不理解,请看一下标准库里面的list,set等的实现,很容易的。原创 2013-08-06 14:29:58 · 7532 阅读 · 0 评论 -
Qt Creator创建C++源代码工程
Qt Creator 创建阅读C++源代码工程原创 2014-07-29 10:58:46 · 17740 阅读 · 1 评论 -
visual studio 2005/2008/2012 编译STLport 5.1.5
先说vs 2005编译STLportstlport源代码,可以添加到vs2005,过程也很容易。下载最新的STLport :http://sourceforge.net/project/showfiles.php?group_id=146814&package_id=162032我下的是5.1.5版本的。解压到c盘,然后进入C:/Program Files/Microsoft Visual Stu原创 2008-03-17 18:17:00 · 5364 阅读 · 4 评论 -
C/C++ 字节序/位域(Bit-fields)之我见
前言很早想说说这个问题了,经常也会有很多公司拿位域出来考人,呵呵要真的想弄清楚还要一点点的分析。这里先看看网宿的一道笔试题目,这道题目我之前是复制网上的,结果不对,修改了一下,可以正确运行了,谢谢(imafish_i )提醒://假设硬件平台是intel x86(little endian) typedef unsigned int uint32_t; void inet_ntoa(uin原创 2008-12-24 21:36:00 · 25329 阅读 · 27 评论 -
虚析构函数
从基类delete派生类不一定会导致内存泄露的,主要发生在,派生类没有动态分配内存的时候,这种情况是无需在派生类的析构函数里面做一个释放内存的动作的,而virtual析构函数就是为了保证派生类析构函数一定会调用,但是没有动态分配内存,其实都没有给出析构函数的必要了,更加不用做调用了:#include using namespace std;class tt{};class d原创 2012-09-17 21:24:27 · 1109 阅读 · 0 评论 -
Windows 异步IO和 完成端口(IOCP)
见过网上好多的完成端口和网络通信的文章,呵呵,这里就简单的说说文件异步IO和完成端口,这里仅仅说说读取操作。下面是一些总结,很少有人提及,认真的看过MSDN文档之后得出的,欢迎指正。要对文件异步IO操作,需要在文件创建的时候指定FILE_FLAG_OVERLAPPED属性的;异步ReadFileEx是不能读取和IO完成端口绑定的文件句柄的;异步ReadFileEx对OVERLAPPED的h原创 2012-07-26 23:16:32 · 5905 阅读 · 2 评论 -
推荐 C++的代码缩进编排更好的工具 -- Artistic Style(Astyle)
这个工具我称之为:Astyle具体网址为:Artistic Style 2.02文档说的非常好了,如果缩进之类的,细分到了每个方面。 为什么推荐这个工具呢?因为传统的indent是没有办法满足c++ er的需求了,只是适合c,这个工具适合C++等语言,也适合C#语言,具体可以参考文档吧。 说说Linux下面的安装: cd astyle/build/gccmake原创 2012-06-03 21:55:05 · 3405 阅读 · 0 评论 -
linux安装intel tbb
首先下载intel tbb:http://threadingbuildingblocks.org/ver.php?fid=174下载tbb40_233oss_src.tgz放到桌面,具体路径自己选择解压,然后开启命令行:cd /root/Desktop/tbb40_233ossmake编译完成之后到build路径下面,会出现:drwxr-xr-x 2 ro原创 2012-01-24 12:54:40 · 7103 阅读 · 0 评论 -
typedef和const之间的trap
博客好久没有更新了,主要是因为工作忙,即便不忙也要看看书,工作了才发现好多东西根本就会直接忘记,因为我们工作用不到!比如c++的东西,现在连虚函数表都不快不记得了,惭愧咯!而且我还发现工作了,看书反倒成了一种非常好的休闲了,不过希望我的朋友,同学们都好. 现在就说说typedef和const之间的那么一道陷阱,而且还很深! 现在也是找工作的时间了,弄清楚这个还是很有好处的,或许很原创 2009-11-04 22:32:00 · 5933 阅读 · 4 评论 -
Windows下boost 1.37.0
纯属测试和学习,等它得到标准委员会的支持时,我想他就真的无敌了 首先下载:www.boost.org上下载最近的1.37版本的boost,7z格式的,解压有182m 开始编译:开启vc 9的命令行终端便是了,进入f盘的boost解压路径执行:f:/boost_1_37_0/tools/jam/build_dist.bat F:/boost_1_37_0/to原创 2008-12-18 12:54:00 · 2662 阅读 · 0 评论 -
也谈memset函数的使用
Memset函数很多地方有介绍,多余的就不说了。这里给出msdn上的一段解释:Sets buffers to a specified character.void *memset( void *dest, int c, size_t count );wchar_t *wmemset( wchar_t *dest,原创 2009-02-17 12:59:00 · 2545 阅读 · 0 评论 -
switch case被人忽视的一点!
这个分支语句怎么的用相信很多人晓得,如果碰到一个错误咋办?先看看程序: switch (t){ case 0: int a = 0; break; case 1: default: break;}原创 2007-12-18 14:12:00 · 4749 阅读 · 4 评论 -
虚函数调用时一点注意,调用基类函数时调用派生类函数
一般的认为,虚机制发生在对象调用 时,其实不然,只要能用到之时,他便会出现!在调用基类函数的时候,如果基类调用了一个虚函数,同样虚机制也会产生效果!看一个程序,没有virtual的情况: #include iostream>using namespace std;class Base ...{public: Base() ...{} virtual ~Base() ..原创 2007-12-20 09:47:00 · 5634 阅读 · 2 评论 -
面试题:不用第三变量交换ab值
常规的就是加减法,这里给出另外一种方法,就是异或法! #include using namespace std; void exchange1(int &a, int &b);void exchange2(int &a, int &b); int mai原创 2007-12-18 10:49:00 · 13428 阅读 · 1 评论 -
c++中的引用的使用原理以及使用实例 (3)
写到这里已经写了很多了,一个下午吧。问题弄好了我就想继续更改程序,是程序按照我的设想运行:第一可以不用引用不?可以用指针,不过相应的地方要改:StringBad::StringBad(const StringBad *st){ num_strings++; len = st->len; // set size str = new ch原创 2007-06-05 17:17:00 · 1235 阅读 · 0 评论 -
c++中的引用的使用原理以及使用实例 (1)
先看理论的东西,这个是我在网上搜索到的,看来觉得比较不错:这个部分是转贴哦!引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。 引用简介 引用就是某原创 2007-06-05 15:53:00 · 2364 阅读 · 0 评论 -
typedef用于函数定义的一个例子
typedef用于定义基本类型或者结构体,很简单再看看怎么定义函数:不使用typedef的:#include using namespace std;double besty(int);double pam(int);void estimate(int, double (*pf)( int ));int main(void){ int code; cout cin >>cod原创 2007-09-03 22:04:00 · 11023 阅读 · 2 评论 -
c++中的io输入输出
c++中的io输入输出有好多种,不算使用c语言的输入就有二进制文件的读写 这里不写文件的打开关闭以及定位等操作!put() put()函数向流写入一个字符,其原型是ofstream &put(char ch),使用也比较简单,如file1.put(c);就是向流写一个字符c。 get() get()函数比较灵活,有3种常用的重载形式: 一种就是和put()对应的形式:i原创 2007-09-03 16:56:00 · 1605 阅读 · 0 评论 -
C++ 学习步骤
一、 ①基础知识(C 语言、标准库、文件、注册表、数据结构) ②高级知识(多线程、串口通讯、网口通讯、动态库、MFC、COM、ATL、ActiveX) ③专业知识(图像处理、多媒体、OpenGL、DirectShow、数据库、网络安全)<!--google_ad_client = "pub-2030898976646910";google_转载 2007-06-07 12:13:00 · 1847 阅读 · 0 评论