
c++
文章平均质量分 77
amyeric
这个作者很懒,什么都没留下…
展开
-
尽量使用初始化而不要在构造函数里赋值(转自effective c++ )
条款12: 尽量使用初始化而不要在构造函数里赋值:条款12: 尽量使用初始化而不要在构造函数里赋值看这样一个模板,它生成的类使得一个名字和一个t类型的对象的指针关联起来。templateclass namedptr {public: namedptr(const string& initname, t *initptr); ...private: st原创 2009-10-18 16:45:00 · 517 阅读 · 0 评论 -
Templates
http://www.cplusplus.com/doc/tutorial/templates/Function templatesFunction templates are special functions that can operate with generic types. This allows us to create a function templa转载 2012-07-24 14:36:11 · 378 阅读 · 0 评论 -
如何更新map、multimap中得key
首先看一下在stl中的语法:template <typename K, typename V, typename Compare = less, typename Allocator = allocator > >class map; template <typename K, typename V, typename Comp翻译 2013-01-09 17:44:05 · 926 阅读 · 0 评论 -
判断一个文件是否存在
c、c++标准库没有提供api 判断一个文件是否存在,所以自己写了一个#ifdef WIN32#include #else#include #endif#include using namespace std;bool FileExists(const char* fileName){#ifdef WIN32 //得到文件属性 DWORD fileAtt = Ge原创 2013-01-09 15:59:19 · 544 阅读 · 0 评论 -
15 C/C++中的日期和時間 time_t與struct tm轉換
转载自: http://tw.tonytuan.org/2008/10/cc-timetstruct-tm.htm摘要:本文從介紹基礎概念入手,探討了在C/C++中對日期和時間操作所用到的數據結構和函數,並對計時、時間的獲取、時間的計算和顯示格式等方面進行了闡述。本文還通過大量的實例向你展示了time.h頭文件中聲明的各種函數和數據結構的詳細使用方法。關鍵字:UTC(世界標准時转载 2013-07-10 10:33:40 · 1457 阅读 · 0 评论 -
关于C++ 引用
class A { int& a;public: A (int _a) : a(_a) {}};int main(){ A a(10); return 0;}上面的code有问题么? 这段code可以编译,但是成员变量引用了一个栈变量,从而会导致“undefined behavier”。原创 2013-09-09 21:42:01 · 718 阅读 · 0 评论 -
Compiling, Linking and Debugging Tips for C++
Copy from http://www.cs.swarthmore.edu/~newhall/unixhelp/debuggingtips_C++.htmlINDEXCompiling C++ programsg++, makeInterpreting linker errorsc++filt, nm, dump, objdump, lddDebuggin转载 2013-09-12 17:17:35 · 1330 阅读 · 0 评论 -
C++静态成员与静态成员函数小结 (转载)
<br /><br />类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 <br />静态类成员包括静态数据成员和静态函数成员两部分。 <br /><br />一 静态数据成员: <br /><br />类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点: <br转载 2011-03-14 13:04:00 · 379 阅读 · 0 评论 -
what’s a virtual destructor and when is it needed?
In C++, what’s a virtual destructor and when is it needed?The need for virtual destructors in C++ is best illustrated by some examples. Let’s start by going through an example that does no转载 2014-03-12 20:29:27 · 684 阅读 · 0 评论 -
explicit关键字
explicit关键字C++中,带单一参数的类构造函数在缺省情况下隐含一个转换操作符| 将该构造函数对应的函数参数转换为该类对象。。。例class MyClass fpublic:MyClass( int num ) ; // constructor and implicit conversion operatorg;...MyClass obj = 10 ;原创 2014-03-13 10:38:35 · 450 阅读 · 0 评论 -
深入理解C++的动态绑定和静态绑定
为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。关于对象的静态类型和动态类型,看一个示例:[cpp] vi转载 2014-03-15 10:23:37 · 499 阅读 · 0 评论 -
Design pattern and Software design interview questions for Programmers
20 Design pattern and Software design interview questions for ProgrammersDesign patterns and software design questions are essential part of any programming interview, no matter whether转载 2014-03-17 17:05:08 · 1262 阅读 · 0 评论 -
memset 用法
void *memset(void *s, int ch, size_t n);函数解释:将s中前n个字节 (typedef unsigned int size_t)用 ch 替换并返回 s 。memset原创 2014-06-04 16:08:44 · 598 阅读 · 0 评论 -
从dll中导出c++类
简介:动态库(DLL)从开始就作为windows平台的组成部分而存在。它以独立的模块把c函数封装起来供其他用户使用 。DLL从开始就是以封装C语言的形式而存在,当然现在你也可以封装其他语言,比如c++,而如果要实现跨平台使用DLL,则我们必须回归到C语言。利用C语言接口并不意味着我们必须丢弃掉面向对象方法。C语言可以实现应用二进制接口(ABI),这样使调用者和被调用着可以遵从统一的标准,但翻译 2014-08-01 16:42:45 · 7544 阅读 · 3 评论 -
C# vs C++之一:委托 vs 函数指针
转自 http://www.cnblogs.com/weidagang2046/archive/2009/08/09/1542248.html委托与函数指针辨析我们常见到C#技术文献用“类似C/C++函数指针的东西”介绍委托。这样好像是有道理的,因为二者的确有深层次的相通之处。委托和函数指针都描述了方法/函数的签名,并通过统一的接口调用不同的实现。但二者又有明显的区别,简单说来,委转载 2012-07-19 16:55:52 · 419 阅读 · 0 评论 -
引用 详解
摘要:介绍C++引用的基本概念,通过详细的应用分析与说明,对引用进行全面透彻地阐述。 关键词:引用,const,多态,指针 引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当转载 2011-09-21 17:24:18 · 300 阅读 · 0 评论 -
条款16: 在operator=中对所有数据成员赋值
条款16: 在operator=中对所有数据成员赋值条款45说明了如果没写赋值运算符的话,编译器就会为你生成一个,条款11则说明了为什么你会经常不喜欢编译器为你生成的这个赋值运算符,所以你会想能否有个两全其美的办法,让编译器生成一个缺省的赋值运算符,然后可以有选择地重写不喜欢的部分。这是不可能的!只要想对赋值过程的某一个部分进行控制,就必须负责做赋值过程中所有的事。实际编程中,这意味着写赋原创 2009-10-18 20:22:00 · 401 阅读 · 0 评论 -
[转自 matrix67.com]KMP算法详解
我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A="Im matrix67",字符串B="matrix",我们就说B是A的子串。你可以委婉地问你的MM:“假如你要向你喜欢的人表白的话,我的名字是你的告白语中的子串吗?” 解决这类问题转载 2009-11-09 19:42:00 · 411 阅读 · 0 评论 -
如何正確的使用迴圈
转自 http://www.cnblogs.com/oomusou/archive/2007/05/12/744000.html<br /><br />Abstract<br />之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL) 曾經討論過for_each(),不過當時功力尚淺,只談到了皮毛而已,這次看了effective STL的item 41、43後,對for_each()又有了更深入的了解,因此做了本篇心得報告。<br /><br />Motiv转载 2011-01-19 17:44:00 · 432 阅读 · 0 评论 -
iterator到底是不是pointer? (转载)
<br />转载自 http://www.cnblogs.com/oomusou/archive/2008/07/21/stl_iterator_pointer.html<br /> <br />Abstract<br />使用iterator時,能使用pointer的*、++、--與->等操作,到底iterator是不是pointer呢?<br />Introduction<br />一個很典型使用vector的STL程式碼。1 #include <vector><br />2 #inc原创 2011-01-18 13:38:00 · 497 阅读 · 0 评论 -
C/C++哪些地方會用到pointer呢?
<br />转载自 http://www.cnblogs.com/oomusou/archive/2008/07/10/656359.html<br />(原創) C/C++哪些地方會用到pointer呢? (C/C++) (C)<br />Abstract<br />學習C/C++,大家最大的障礙就是pointer,本文試著將pointer做整體的討論。<br /><br />Introduction<br />C很多地方都用到pointer,C++則有不少替代方案,以下是C和C++會用到poin转载 2011-01-18 15:33:00 · 1029 阅读 · 0 评论 -
C++ 仿函数(functor) (转载)
<br />所谓的仿函数(functor),是通过重载()运算符模拟函数形为的类。<br /> 因此,这里需要明确两点:<br /> 1 仿函数不是函数,它是个类;<br /> 2 仿函数重载了()运算符,使得它的对你可以像函数那样子调用(代码的形式好像是在调用函数)。<br /> 但其实问题的本质不是在代码风格上,仿函数与回调函数各有利弊,不能一概而论。<br /> 仿函数(functor)的优点<br /> 我转载 2011-01-19 13:05:00 · 1503 阅读 · 0 评论 -
A Collection of Examples of 64-bit Errors in Real Programs
转自 http://www.codeproject.com/KB/cpp/Examples-64-bit-Errors.aspx<br />Abstract<br />This article is the most complete collection of examples of 64-bit errors in the C and C++ languages. The article is intended for Windows-application developers who use转载 2011-05-15 20:34:00 · 2413 阅读 · 0 评论 -
Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗? 最近重读GOF的《设计模式》,读到Builder模式的时候,发现还是不能领悟;网上搜了下其他人的解释,发现很多人都用错了Builder模式,结构形似Builder,实际上却更像Template、或者Factory Method,或者四不像,并没有体现出Builder模式的思想和威力;通过对比学习,也逐渐加深了我对Builder模式的认识,于是就有了这篇文章。 0. GOF - Builder模式 下转载 2011-05-15 21:47:00 · 473 阅读 · 0 评论 -
虚析构函数(√)、纯虚析构函数(√)、虚构造函数(X)
<br />转载自http://blog.youkuaiyun.com/faithmy509/archive/2010/03/28/5423455.aspx虚析构函数(√)、纯虚析构函数(√)、虚构造函数(X)2008年06月17日 星期二 17:31<br />一. 虚析构函数<br />我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数。因为在delete一个抽象类指针时候,必须要通过虚函数找到真正的析构函数。<br />如:<br />class Base<br />.转载 2011-06-01 16:05:00 · 335 阅读 · 0 评论 -
C++箴言:理解typename的两个含义
问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? template class Widget; // uses "class"template class Widget; // uses "typename"转载 2011-07-07 14:36:25 · 278 阅读 · 0 评论 -
placement new
placement new 是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。它的原型如下: void *operator new( size_t, v转载 2011-07-28 14:52:57 · 345 阅读 · 0 评论 -
[转自 matrix67.com]KMP算法详解
如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段。我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A转载 2011-08-19 13:59:04 · 388 阅读 · 0 评论 -
漫谈UML
转自 http://www.vckbase.com/document/viewdoc/?id=422UML对很多人来说应该不是一个陌生的概念,这一两年来,UML被大家越来越多的讨论着。本来UML跟我这个主题似乎并不能扯上多大的关系(它是语言无关的,甚至可以说其本身就是转载 2011-09-21 17:03:38 · 415 阅读 · 0 评论 -
vc中运行库的选择
这两天编译工程的时候引入了mysql++的原创 2014-09-02 10:10:50 · 1291 阅读 · 0 评论