
c/c++进行时
文章平均质量分 85
coder_xia
苦练杀敌本领
展开
-
int_size_is_32(),判断int是否为32位
题目来自深入理解计算机系统习题2.67,题目描述:编写一个函数int_size_is_32(),当在一个int为32位的机器上运行时,返回1,而其他情况返回0,不允许用sizeof操作符。 首先进行的尝试:int Is_Int_32() { int set_msb = 1 << 31; int beyond_msb = 1 << 32; return set_msb &&原创 2012-04-23 17:17:32 · 3696 阅读 · 4 评论 -
大小端模式与位字段小总结
最近看代码,突然看到以下的,当时就震惊了,除了MFC的一些,还是第一次看到类里定义牵扯到宏的。 加上以前对大小端和位字段的接触都很少,只是看到,然后粗看,飘过那种,想不到还真遇到了,于是总结下。class DownlinkControlField {public:#if defined(__BIG_ENDIAN_BITFIELD) unsigned short res1:2;原创 2011-10-24 21:15:10 · 2749 阅读 · 1 评论 -
C++类成员的初始化
1、关于构造函数1)用构造函数确保初始化对于一个空类class Empty { };编译器会自动声明4个默认函数:构造函数,拷贝构造函数,赋值函数,析构函数(当然,如果不想使用自动生成的函数,就应该明确拒绝),这些生成的函数都是public且inline。构造函数对数据成员进行初始化,使用未初始化值可能导致无法预知的错误,所以,确保每一个构造函数都将每一个成员初始化。2)为什么原创 2012-04-11 10:02:36 · 77009 阅读 · 13 评论 -
求质数算法的N种境界 (N > 10)
http://blog.youkuaiyun.com/program_think/article/details/7032600 太长,就不帖原文了,只是说下感受吧,除了说天外有天人外有人这种,更多是想到当前想法的不正确,太纠结于对错,而不是想法,做东西也只是想的实现就完成,而不是怎么能更有效率,得改进啊转载 2011-12-04 16:14:23 · 1642 阅读 · 0 评论 -
一个简单的linux下原生socket的tcp程序及其修改
最初参考网上资料完成如下:/* * tcpserver.c *Author:coder_xia * Description:a simple tcp server */#include #include //sockaddr_in#include //inet_addr#include //close#include #include #include #def原创 2011-12-24 11:46:53 · 1906 阅读 · 0 评论 -
Virtual的一些总结
一、函数的隐藏与覆盖 曾经看孙鑫的《VC++深入详解》,在C++基础中提到过函数的隐藏与覆盖,不懂的同学可以去搜,当时没能理解其精髓,后来看到ACE代码,很多析构函数都是虚函数后,开始去搜了。 继承是动态多态的支撑点,继承的时候,public的成员和方法都是直接可以使用的,当子类函数与父类函数同名时,父类方法就被隐藏了;而如果父类方法是虚函数,则父类方法被覆盖(原创 2011-10-21 09:41:21 · 956 阅读 · 0 评论 -
强大的g++呢还是强大的C++?太假了吧
以前C89不能随便定义变量,现在可以跟C++一样,随用随定义,倒是方便了不少。 今天看C++ Primer,发现个更high的,.c的后缀,只要用g++去编译,照样能过C++的程序book.c内容如下,注意啊,后缀名是.c,不是.cpp或者.cxx#i原创 2011-08-25 20:12:45 · 1687 阅读 · 4 评论 -
常用排序算法的c++实现(冒泡,选择,插入,堆,shell,快速,归并 )与sort()对比
偶然在书上看到句话,“为++程序员所津津乐道的一件事,就是sort()全面打败c语言的quicksort”,于是决定亲自测试下,正好将其他的排序也一并测试了,当做当初没写的补偿吧。 测试文件的一些说明: 1、 测试中如果用数组,当MAX达到1000000时,会sta原创 2011-07-12 22:40:19 · 3019 阅读 · 0 评论 -
c++的多态和虚函数(一)
前言: 提到c++的多态,很容易就会想到通过继承和虚函数,让同一函数的调用表现出不同的结果。其实C++支持多种形式的多态,从绑定时间来看可以分成静态多态和动态多态,也称为编译期多态和运行期多态。 其中,动态多态,通过继承和虚函数机制实现;静态多态,在原创 2011-07-10 21:32:13 · 792 阅读 · 0 评论 -
c/c++的输出,最初被打败的一次
#includeusing namespace std;//-----------------------int hello(){ cout return 1;}int world(){ cout return 3;}//=========原创 2010-09-13 14:05:00 · 974 阅读 · 0 评论 -
prim和dikjstra复习时。。。
以前学数据结构的时候,没认真写这俩算法,现在复习来高下,先上Prim的(严蔚敏版数据结构174页) 首先是引入结构体保存的当前最近节点和长度原创 2011-07-06 16:05:28 · 852 阅读 · 1 评论 -
C/C++语言中的void及void指针总结
一、void 和 void* 含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 对于void,如果定义void a;是会编译出错的(vc6下得到:error C2182: a : illegal use of type void,vs08中: error C2182: “a”: 非法使用“void”类型原创 2011-06-27 15:18:00 · 4374 阅读 · 0 评论 -
c/c++在windows下获取时间和计算时间差的几种方法总结
一、标准C和C++都可用1、获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t timer0 )。 精确到秒。测试程序如下:#include #include int main(){ time_t start ,end ; double cost; ti原创 2011-06-24 22:47:00 · 117328 阅读 · 13 评论 -
关于C++编程思想151页遇到的内存分配问题
书上例子如下:1、//: C06:Nojump.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyright.txt// Cant jump past cons原创 2011-06-21 10:10:00 · 1319 阅读 · 0 评论 -
刚试出的extern一些以及联想到的,记录以备不忘
1、学c的时候,接触过extern,没深入研究,直到最近看c++编程思想,看到178页extern const int x=100;对extern进行测试,首先test2.cpp如下内容int x=100;int y=200; 然后test.cpp #include #include "test2.cpp"using namespace std;ext原创 2011-06-20 14:05:00 · 1023 阅读 · 3 评论 -
再次抄一个计算器代码,傻瓜式。。。
首先,新建基于对话框的mfc,如图,添加按钮IDC_BTN_0 至IDC_BTN_9,IDC_BTN_PLUS,IDC_BTN_MINUS,IDC_BTN_MULTIPLY,IDC_BTN_DIVEDE,IDC_BTN_CLEAR,IDC_BTN_IS 在dlg.h中,添加double m_Num,用于暂存输入数据,给edit控件关联double类型变量m_Result用于显示输入数和结果添加BOOL型的m_Time表示是否第一次按键,并在构造函数中初始化 m_Num = 0.0;原创 2010-10-30 19:54:00 · 1137 阅读 · 0 评论 -
flex客户端+vc服务端,实现配置文件修改
配置文件采用XML实现,简略xml文件test.xml如下: 001 调色板 cc33ff 由于flex不具有写文件的API,所以,将调色后的RGB以socket发送到服务器端,由服务器对文件进行修改,以使下次登录读取配置文件时,有保存的RG原创 2011-07-27 22:04:48 · 1970 阅读 · 0 评论 -
最近发现基础很不给力啊,char*遇到的一些问题
接到任务,以前对于数据库访问是用Qt对postgresql进行操作,所以用到的也是Qt对于数据库操作的类QSqlDatabase m_db;if (m_db.open()) { qDebug("Database opened success");} else原创 2011-09-01 22:15:45 · 1065 阅读 · 0 评论 -
unixODBC中 column .... does not exist 的解决过程
情况描述:在postgresql中添加表example后,用DTL示范代码访问,提示错误。dtl代码如下:(添加库odbc、DTL、odbcinst、stdc++)#include "DTL.h"#include using namespace dtl;using原创 2011-09-09 19:05:13 · 2211 阅读 · 0 评论 -
C++中的函数指针的一些总结
1、函数指针的引出 假设我们需要写个函数sort( start, end, compare );对start 和end 之间的数组元素进行排序compare 定义了比较数组中两个字符串的比较操作。如果我们需要比较的数组是string类型,那么排序方式,也许是按照原创 2011-08-27 15:10:49 · 3340 阅读 · 0 评论 -
C++中的内联函数inline总结
突然看到C++Primer中讲到,对于vector的一个循环,调用语句:(示例代码i=v.begin()不是很规范,虽然不会出错,客官请将就着看)for (int i=v.begin() ; i<v.size() ; i++){ ....} 对于size()原创 2011-08-26 21:46:50 · 32049 阅读 · 16 评论 -
vc6局域网聊天室,支持文件传输的完成和修改
最近马同学接到个任务,相关的是用windows的socket技术实现通信,部分要求如下:(2) 采用TCP/IP Sock协议建立计算机间远程通讯;(4) 实时记录传输数据;(5) 采用多线程技术实现实时传输和数据记录; 一、 看要求后,原创 2011-08-19 20:45:17 · 8154 阅读 · 15 评论 -
对字节填充的一点理解,以及一小段代码
#include using namespace std;#pragma pack(push)//#pragma pack(2) //数字表示强制按照多少对齐,如为1,则最终输出实际大小,为15,19原创 2010-08-25 20:45:00 · 9736 阅读 · 2 评论 -
面试题之丑数的C++实现求解(孤陋寡闻了,才知道丑数这么high的东东)
问题描述: 我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。(昨天突然发现个不错的博客:http://blog.csdn.原创 2011-08-22 13:42:16 · 34196 阅读 · 4 评论 -
正好碰到了C++的函数对象,查各路资料,总结写下来吧
DTL中的BCA和BPA都是函数对象,如BCA的文档所说 A BCA is a function object (this can be a wrappedfunction pointer if you use cb_ptr_fun()) that is called原创 2011-09-19 22:34:20 · 806 阅读 · 0 评论 -
Argument of type '(Foo::)(int,int)' does not match 'void (*)(int,int)'以及静态函数问题
今天在封装DTL函数的时候,遇到了这个错误: error: argument of type ‘void (EH_Database::)(ParamObjExample&)’ does not match ‘void (*)()’ 也就是我的成员函数,与普通的调用函数指针不匹配原创 2011-09-16 16:42:45 · 5535 阅读 · 0 评论 -
DTL中插入和删除数据的两种方法总结
在DTL中,对数据进行插入和删除操作,目前发现有两种方法,一是用STL方法,一是用IndexDBView类操作;昨天就实验了这两种方法操作,DTL真不是一般的强大啊,可以像STL的操作,也可以直接执行SQL语句(ODBC封装貌似都可以吧),效率也还不错,当然,得选择合适的方法。(原创 2011-09-14 22:19:19 · 2417 阅读 · 0 评论 -
specialization of template.... in different namespace的解决
代码来自DTL文档index.htmstruct Example{ // tablename.columnname: int exampleInt; // DB_EX原创 2011-09-09 20:08:38 · 3357 阅读 · 0 评论 -
两个类互相包含对方成员,又在2个文件中的情况
抽象概括下,就是A类定义在A.h中,A类中有个B*成员;B类定义在B.h,B类同样有A*成员 解决办法,就是A类定义前面,加上class B;一行,进行声明,在B类定义前,加上#include“A.h”(交换也是一样)如果在B类前同样加上class A;的话,应该是不行的,经vc6一个程序验证,貌似会出现,类视图里找不到某一个类 这里如果在A.cpp中,A类的某个函数要调用B类函数怎么办呢?如果这样的话,会出现的问题是说函数没定义。在A.cpp上添加class B{publ原创 2010-09-26 11:16:00 · 2309 阅读 · 4 评论