随笔分类 -  C++

摘要:原文:http://blog.csdn.net/tianshuai1111/article/details/7674327一,巡防算法 for_each(容器起始地址,容器结束地址,要执行的方法)#include #include #include using namespace std;te... 阅读全文
posted @ 2014-08-07 10:09 Leo Forest 阅读(327) 评论(0) 推荐(0)
摘要:原文:http://blog.csdn.net/tianshuai1111/article/details/7687983一,概述 仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。 有些... 阅读全文
posted @ 2014-08-06 13:02 Leo Forest 阅读(1056) 评论(0) 推荐(0)
摘要:原文:http://blog.csdn.net/hackbuteer1/article/details/7475622C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖(override),或者称为重写。(这里我觉.. 阅读全文
posted @ 2014-02-13 15:14 Leo Forest 阅读(266) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/UnGeek/archive/2013/03/08/2950863.html//使用标准C语言的time函数,可以满足一般性需要#include #include int main( void ){ time_t t = time( 0 ); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z", localtime(&t) ); puts( tmp ); return 0;}//GetLocalTime获取当前系统时间,精确到微... 阅读全文
posted @ 2013-10-14 22:30 Leo Forest 阅读(2031) 评论(0) 推荐(0)
摘要:Poco Exception提供的宏挺方便的。。#include "Poco/Exception.h"#include POCO_DECLARE_EXCEPTION( , MyException, Poco::Exception )POCO_DECLARE_EXCEPTION( , MyFatalException, Poco::Exception )POCO_IMPLEMENT_EXCEPTION( MyException, Poco::Exception, "Something really bad happened..." )POCO_IMPLEM 阅读全文
posted @ 2013-10-12 16:25 Leo Forest 阅读(898) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/whyandinside/archive/2012/02/05/2339102.htmlnew的类型有三种类型的new,名字都是new,用起来也都跟分配内存有关系,分别是plain new , nothrow new和 placement new。看如下代码:classMyClass {…};MyClass * p=newMyClass;这里的new实际上是执行如下3个过程(这三个过程都在一个new operator中完成):1. 调用malloc/heap_alloc分配内存 ;2. 调用构造函数生成类对象;3. 返回相应指针。operat 阅读全文
posted @ 2013-10-11 14:16 Leo Forest 阅读(576) 评论(0) 推荐(0)
摘要:原文:http://blog.chinaunix.net/uid-20476365-id-1942463.html虚析构函数析构函数的工作方式是:最底层的派生类(most derived class)的析构函数最先被调用,然后调用每一个基类的析构函数。因为在C++中,当一个派生类对象通过使用一个基类指针删除,而这个基类有一个非虚的析构函数,则结果是未定义的。运行时比较有代表性的后果是对象的派生部分不会被销毁。然而,基类部分很可能已被销毁,这就导致了一个古怪的“部分析构”对象,这是一个泄漏资源。排除这个问题非常简单:给基类一个虚析构函数。于是,删除一个派生类对象的时候就有了你所期望的正确行为。将 阅读全文
posted @ 2013-09-12 18:45 Leo Forest 阅读(508) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/lvpengms/archive/2011/02/21/1960078.html篇一、函数指针函数指针:是指向函数的指针变量,在C编译时,每一个函数都有一个入口地址,那么这个指向这个函数的函数指针便指向这个地址。函数指针的用途是很大的,主要有两个作用:用作调用函数和做函数的参数。函数指针的声明方法:数据类型标志符 (指针变量名) (形参列表);一般函数的声明为:int func ( int x );而一个函数指针的声明方法为:int (*func) (int x);前面的那个(*func)中括号是必要的,这会告诉编译器我们声明的是函数指针而不 阅读全文
posted @ 2013-06-24 23:14 Leo Forest 阅读(1743) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/zhoug2020/archive/2012/04/06/2434139.htmlC++ new用法之一 new运算符最常用的是作为运算符的new,比如:string *str = new string(“test new”);作为运算符,new和sizeof一样,是C++内置的,你不能对它做任何的改变,除了使用它。new会在堆上分配一块内存,并会自动调用类的构造函数。C++ new用法之二 new函数第二种就是new函数,其实new运算符内部分配内存使用的就是new函数,原型是:void *operator new(size_t size) 阅读全文
posted @ 2013-06-23 08:46 Leo Forest 阅读(212) 评论(0) 推荐(0)
摘要:摘自:http://zhidao.baidu.com/question/32424351.html虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。下面是对C++的虚函数这玩意儿的理解。一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异而采用不同的策略。下面来看一段简单的代码class A{ p... 阅读全文
posted @ 2013-06-21 01:38 Leo Forest 阅读(505) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/me115/archive/2013/06/05/3117967.html1. 二八法则:在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的;在优化实践中,我们将精力集中在优化那20%最耗时的代码上,整体性能将有显著的提升;这个很好理解。函数A虽然代码量大,但在一次正常执行流程中,只调用了一次。而另一个函数B代码量比A小很多,但被调用了1000次。显然,我们更应关注B的优化。2. 编完代码,再优化;编码的时候总是考虑最佳性能未必总是好的;在强调最佳性能的编码方式的同时,可能就损失了代码的可读性和开发效率; 阅读全文
posted @ 2013-06-05 09:54 Leo Forest 阅读(219) 评论(0) 推荐(0)
摘要:ReactorTest.cc#include "Poco/Net/SocketReactor.h"#include "Poco/Net/SocketNotification.h"#include "Poco/Net/SocketConnector.h"#include "Poco/Net/SocketAcceptor.h"#include "Poco/Net/StreamSocket.h"#include "Poco/Net/ServerSocket.h"#include & 阅读全文
posted @ 2013-05-16 17:24 Leo Forest 阅读(2712) 评论(0) 推荐(0)
摘要:原文:http://msdn.microsoft.com/en-us/library/windows/desktop/ms682006(v=vs.85).aspx//// Purpose: // Disables the service.//// Parameters:// None// // Return value:// None//VOID __stdcall DoDisableSvc(){ SC_HANDLE schSCManager; SC_HANDLE schService; // Get a handle to the SCM database. ... 阅读全文
posted @ 2013-05-03 14:42 Leo Forest 阅读(654) 评论(0) 推荐(0)
摘要:#include <windows.h>#include <iostream>#define MAX_SERVICE_SIZE 1024 * 64#define MAX_QUERY_SIZE 1024 * 8int main(void){ do { SC_HANDLE SCMan = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if(SCMan == NULL) { std::cout << "OpenSCManager failed." << std::endl; .. 阅读全文
posted @ 2013-05-03 14:17 Leo Forest 阅读(1805) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/L-hq815/archive/2012/08/04/2622829.html一台机器上可能不只有一个网卡,但每一个网卡只有一个MAC地址,而每一个网卡可能配置有多个IP地址;如平常的笔记本电脑中,就会有无线网卡和有线网卡(网线接口)两种;因此,如果要获得本机所有网卡的IP和MAC地址信息,则必须顺序获得每个网卡,再依次获取其信息等;在windows sdk中,用IP_ADAPTER_INFO结构体存储网卡信息,包括网卡名、网卡描述、网卡MAC地址、网卡IP等,该结构体的主要描述如下所示:typedef struct _IP_ADAPTER_ 阅读全文
posted @ 2013-05-03 11:09 Leo Forest 阅读(1974) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/goodhacker/archive/2011/07/20/2111996.htmlC风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。static_cast,命名上理解是静态类型转换。如int转换成char。dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换。reinterpret_cast,仅仅重新解释类型,但没有进行二进制的转换。 阅读全文
posted @ 2013-05-02 17:23 Leo Forest 阅读(246) 评论(0) 推荐(0)
摘要:原文:http://blog.csdn.net/maoxing63570/article/details/6919599#include <windows.h>#include <stdio.h>#include <conio.h>#include <tchar.h>#include <pdh.h>#include <pdhmsg.h>#pragma comment(lib, "pdh.lib")#define COUNT_INTERVAL 1000const TCHAR *pszPathBuff=_T 阅读全文
posted @ 2013-04-24 15:43 Leo Forest 阅读(1654) 评论(0) 推荐(0)
摘要:原文:http://blog.yangyubo.com/2009/06/04/best-cpp-singleton-pattern/索引静态化并不是单例 (Singleton) 模式饿汉模式懒汉模式 (堆栈-粗糙版)懒汉模式 (局部静态变量-最佳版)范例代码和注意事项 (最优实现)扩展阅读参考资料我非常赞成合理的使用设计模式能让代码更容易理解和维护, 不过我自己除了简单的单例 (Singleton) 模式外, 其它都很少用 :-)可耻的是, 直到前段时间拜读了C++ In Theory: The Singleton Pattern, Part I, 我才发现自己的单例 (Singleton) 阅读全文
posted @ 2013-04-23 07:55 Leo Forest 阅读(274) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/couhujia/archive/2012/11/02/2750204.html C++继承可以是单一继承或多重继承,每一个继承连接可以是public,protected,private也可以是virtual或non-virtual。然后是各个成员函数选项可以是virtual或non-virtual或pure virtual。本文仅仅作出一些关键点的验证。 public继承,例如下:1 class base2 {...}3 class derived:public base4 {...} 如果这样写,编译器会理解成类型为derived的... 阅读全文
posted @ 2013-04-04 08:50 Leo Forest 阅读(222) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/CaiNiaoZJ/archive/2011/08/18/2144247.html 前两节介绍了C++的IO流类库,标准设备IO操作流中部分预定义流对象的成员函数以及IO格式控制。那今天我将继续介绍关于C++中的流操作内容——文件IO操作流fstream。并会着重讲解C++是如何对文件进行操作的。 文件指存放在外部介质上的数据的集合。大家都知道操作系统是以文件为单位来对数据进行管理的。因此如果你要查找外部介质的数据,则先要按文件名找到指定文件,然后再从文件中读取数据,如果要把数据存入外部介质中,如果没有该文件,则先要建立文件,再向它输入数据. 阅读全文
posted @ 2013-03-28 00:29 Leo Forest 阅读(254) 评论(0) 推荐(0)