随笔分类 -  CPP Programming

1
摘要:点击打开链接“作为一名C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且Java的语法无疑是非常熟悉的。事实上,Java本来就是从C++衍生出来的。” 然而,C++和Java之间仍存在一些显著的差异。可以这样说,这些差异代表着技术的极大进步。一旦我们弄清楚了这些差异,就会理解为什么说Java是一种优秀的程序设计语言。本附录将引导大家认识用于区分Java和C++的一些重要特征。 (1) 最大的障碍在于速度:解释过的Java要比C的执行速度慢上约20倍。无论什么都不能阻止Java语言进行编译。写作本书的时候,刚刚出现了一些准实时编译器,它们能显著加快速度。当然,我们完全有理由认为会出.. 阅读全文
posted @ 2012-03-18 15:17 Podevor 阅读(215) 评论(0) 推荐(0)
摘要:code:#include <iostream> using namespace std; void terminator(){ cout << "I 'll be back!" <<endl; exit(0); } void (*old_terminate)() = set_terminate(terminator); class B{ public : class A{}; void f(){ cout<<"B::f()"<<endl; throw A(); } ~B(){ thro 阅读全文
posted @ 2012-03-12 10:06 Podevor 阅读(701) 评论(0) 推荐(0)
摘要:#include <QtCore/QCoreApplication>#include <QDebug>#include <QtCore>QStringList names;QStringList nodes1;QStringList nodes2;QList<QStringList> nodeslist;int getName(QString &name, int idx);int getNode(QString &node, int idx1, int idx2);int main(int argc, char *argv[]) 阅读全文
posted @ 2011-10-10 21:06 Podevor 阅读(151) 评论(0) 推荐(0)
摘要:为什么蛋,不解释!!!!!!!!!!!!!!!!#include <QtCore/QCoreApplication>#include <QDebug>int changeName(QString &name);int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QString name = "name"; changeName(name); qDebug() << name; return a.exec();}int changeName(QStrin 阅读全文
posted @ 2011-10-10 19:50 Podevor 阅读(126) 评论(0) 推荐(0)
摘要:static const char QQ_APPLY_FREE_ACOUNT_URL[] = "http://jump.qq.com/clienturl_239?ADUIN=0&ADSESSION=0&ADTAG=CLIENT.QQ.1595_LoginWindow.0"; static const char QQ_FORGET_PASSWORD_URL[] = "http://dna.qq.com/cgi-bin/console_forgetPW?reLogin=true&ADUIN=0&ADSESSION=0&ADTAG 阅读全文
posted @ 2011-09-30 13:51 Podevor 阅读(164) 评论(0) 推荐(0)
摘要:原文点击打开之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用=进行赋值操作,==进行比较,+做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。首先,为了在我们的程序中使用string类型,我们必须包含头文件<string>。如下:#include<string>//注意这里不是string.hstring.h是C字符串头文件1.声明一个C++字符串声明一个字符串变量很简单:s 阅读全文
posted @ 2011-09-20 12:35 Podevor 阅读(183) 评论(0) 推荐(0)
摘要:点击打开链接 阅读全文
posted @ 2011-09-14 14:13 Podevor 阅读(100) 评论(0) 推荐(0)
摘要:点击打开链接 阅读全文
posted @ 2011-07-25 18:37 Podevor 阅读(121) 评论(0) 推荐(0)
摘要:from:点击打开链接看了几天asio文档,总算可以写点小程序了。有些细节还是没弄明白,同步IO好像还不能设超时?服务器端采用异步IO,客户端则采用同步IO。传送文件,不得不注意到 C/C++ 2G文件限制,好像没通用的解决方法。先定义下头文件,统一下asio和boost_asio。#ifndef _FILE_INFO_H_ #define _FILE_INFO_H_ #if USE_ASIO_ALONE #include <asio.hpp> #else #include <boost/asio.hpp> namespace asio { usi... 阅读全文
posted @ 2011-07-08 10:44 Podevor 阅读(589) 评论(0) 推荐(0)
摘要:from:http://www.cppblog.com/chugf/archive/2011/07/05/150224.aspxJava与C++通讯还有编码转码的问题存在,假设通讯编码采用UTF-8C++客户端发送时需要转码成UTF-8编码,接收服务端应答消息后再转回Unicode或者GBK编码下面给出完成的C++客户端通讯示例:void Transcoding(LPCTSTR src, UINT srcCode, string& dest, UINT destCode) { int len = MultiByteToWideChar(srcCode, 0, src, -1... 阅读全文
posted @ 2011-07-07 13:53 Podevor 阅读(289) 评论(0) 推荐(0)
摘要:from:http://www.cppblog.com/chugf/archive/2011/07/05/150223.aspx最近学习了Apache MINA通讯,在使用过程中碰到了一些问题,记录下一些心得。在服务端和客户端都使用MINA提供的库时,通讯一切正常,当我把客户端改为C++代码时,发现客户端发送给服务端的二进制流中的整形数据,位置被倒置了。C++客户端16进制 :0x00000013MINA服务端16进制:0x13000000查询了网上资料后才知道Java在所有平台上都默认是big-endian,而C++在不同的平台上有不同的字节序, X86上是little-endian, so 阅读全文
posted @ 2011-07-07 13:51 Podevor 阅读(214) 评论(0) 推荐(0)
摘要:froM:点击打开链接我的父亲母亲:编译器和链接器虽然我是Visual Studio创建的,但是实际上,我的老爸和老妈是Visual Studio集成的编译器和链接器。此外,Visual Studio提供的主要是编辑功能,让你更方便地编辑我的源代码。我老爸编译器的工作是将高级语言C++翻译为低级语言(机器语言)。我的源文件是使用C++这种高级程序设计语言编写的,便于人们编写、阅读和维护。但计算机不理解高级语言,所以老爸的职责是将源程序翻译成计算机能够解读运行的目标语言(target language)。目标语言通常是汇编语言或目标机器的目标代码(object code),有时也称作机器代码(m 阅读全文
posted @ 2011-07-07 13:47 Podevor 阅读(189) 评论(0) 推荐(0)
摘要:from:点击打开链接clock.h #ifndef _CLOCK_H_ #define _CLOCK_H_ struct Time{ int hour, minute, second; }; void set(Time* p, int h, int m, int s); void walk(Time* p); void show(Time* p); void run(Time* p); #endifclock.cc#include <iostream> #include <ctime> #include "clock.h" using n... 阅读全文
posted @ 2011-07-07 13:41 Podevor 阅读(240) 评论(0) 推荐(0)
摘要:Exception Classes for Language SupportExceptions for language support are used by language features. So in a way they are part of the core language rather than the library. These exceptions are thrown when the following operations fail.• An exception of class bad_alloc is thrown whenever the global 阅读全文
posted @ 2011-07-05 16:08 Podevor 阅读(385) 评论(0) 推荐(0)
摘要:from:点击打开链接//Copyright (c) LeafCore #include <windows.h> #include <math.h> #include <time.h> LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM); void draw(HDC); char szClassName[ ] = "LeafCore"; int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance 阅读全文
posted @ 2011-07-05 12:46 Podevor 阅读(219) 评论(0) 推荐(0)
摘要:今天在http://bbs.51cto.com/viewthread.php?tid=854253&pid=4320845&page=1&extra=#pid4320845看到了一个关于C++template的问题,于是就仔细的研究过了一下。#include <iostream> using namespace std; template<class T> class A { public: A(){m_value = 1;} friend T operator+(const A& left, const T& right); i 阅读全文
posted @ 2011-07-04 19:17 Podevor 阅读(336) 评论(0) 推荐(0)
摘要:我要定义一个函数,以某个数组为参数。函数中要计算这个数组的长度。 如果是在外面,可以直接用诸如sizeof a/sizeof a[0]这样的方法得到,但是我把a作为参数传到函数中后,这个形参就是指针类型了,用sizeof相除的办法得到的始终是1,所以我想是不是可以传a的引用进去。我不太希望再加个数组长度作为参数。 解决:#include<iostream> using namespace std; int array_length(int (&a)[5]) { return sizeof(a)/sizeof(a[0]); } int main() { int array[5 阅读全文
posted @ 2011-07-04 16:50 Podevor 阅读(2977) 评论(0) 推荐(0)
摘要:所谓数组引用,即指向数组的引用;如 int a[10] ; int (&b)[10] = a ;如果写成 int a[10] ; int* &b = a ;将会报错: cannot convert from 'int [10]' to 'int *&'。 或许你会说在数组名不就是指向这个数组的一个指针吗?题中a是int*类型的,b是指向int*的引用,按理应该是正确的啊,为什么会报错呢?这是因为编译器对指向数组的引用检查更加严格,需要检查数组的维数,在这里a被理解成指向10个int数组的指针int [10],对于引用也需要相应的引用类型i 阅读全文
posted @ 2011-07-04 16:48 Podevor 阅读(628) 评论(0) 推荐(0)
摘要:Test Driven DevelopmentWhen you code, alternate these activities:add a test, get it to fail, and write code to pass the test (DoSimpleThings,CodeUnitTestFirst)remove duplication (OnceAndOnlyOnce,DontRepeatYourself,ThreeStrikesAndYouAutomate)This inner loop pumps the outer loops ofExtremeProgramming- 阅读全文
posted @ 2011-07-01 08:11 Podevor 阅读(225) 评论(0) 推荐(0)
摘要:C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下://Example 1#include <iostream.h>void fn();static int n; //定义静态全局变量void main(){ n=20; cout<<n<<endl; fn();}void fn() 阅读全文
posted @ 2011-07-01 07:12 Podevor 阅读(170) 评论(0) 推荐(0)

1