随笔分类 -  c++

摘要:原文链接所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。一 :<iostream>和<iostream.h>是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当使用<iostream.h>时,相当于在 阅读全文
posted @ 2012-05-13 20:05 wangkangluo1 阅读(14289) 评论(0) 推荐(1)
摘要:原文链接一个典型的 C++ 程序员成长经历:1.完整的学一遍 C++ 所有语言特性,典型书籍"The C++ Programming Language" Part1, Part2, "C++ Primer" 感觉 C++ 像大杂烩(多编程范型),各种精妙的语法特性 (friend, virtual/RTTI, const/mutable, exception, template),太多精妙的东西容易导致记忆琐碎化,学了又忘了,尤其是那些很少用的部分 实践:编写一些带 class 和 virtual 字眼的所谓的 C++ 程序2.树立 C++ 的规则,明确 阅读全文
posted @ 2012-05-13 17:44 wangkangluo1 阅读(6664) 评论(0) 推荐(0)
摘要:原文链接C++中 public,protected, private 访问标号小结第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。第二:类的继承后方法 阅读全文
posted @ 2012-05-13 13:51 wangkangluo1 阅读(472) 评论(0) 推荐(0)
摘要:原文链接纯虚函数的作用 在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。1.首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数为纯虚函数,才代表函数没有被实现。定义他是为了实现一个接口,起到一个规范的作用,规范继承这个。类的程序员必须实现这个函数。2.关于实例化一个类:有纯虚函数的类是不可能生成类对象的,如果没有纯虚函数则可以。比如:classCA{public:virtualvoidfun()=0;//说明fun函数为纯虚函数virtualv. 阅读全文
posted @ 2012-05-13 02:55 wangkangluo1 阅读(3567) 评论(1) 推荐(0)
摘要:原文链接Cpp代码#include <iostream.h>class Base { public: Base() { mPtr = new int; } ~Base() { delete mPtr; cout<<"Base::Destruction"<<endl;} private: int* mPtr; } ;class Derived : public Base { public: Derived() { mDerived = new long; } ~Derived() { delete mDerived; cout<< 阅读全文
posted @ 2012-05-11 19:51 wangkangluo1 阅读(916) 评论(0) 推荐(0)
摘要:原文链接成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖:派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。函数Base::f(int)与Base::f(float)相互重载,而Base::g(void)被Derived::g(void)覆盖。#include <iostream.h>cl 阅读全文
posted @ 2012-05-09 11:25 wangkangluo1 阅读(388) 评论(0) 推荐(0)
摘要:开始:c:#include <errno.h>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <string.h> int main ( int argc, char *argv[] ) { ... 阅读全文
posted @ 2011-10-08 16:11 wangkangluo1 阅读(1398) 评论(0) 推荐(0)
摘要:原文地址:http://hi.baidu.com/tangguoshequ/blog/item/d587dc170878c8946538dbd1.html1. Levenshtein Distance该算法又称之为 "编辑距离",用于计算两个字符串的相似程度。原理很简单,就是返回将第一个字符串转换(删除、插入、替换)成第二个字符串的编辑次数。次数越少,意味着字符串相似度越高。算法原理:Wikipedia - Levenshtein distance本文摘自:http://www.rainsts.net/article.asp?id=767Step1:人 民 共 和 时 代0 阅读全文
posted @ 2011-09-02 10:28 wangkangluo1 阅读(1392) 评论(1) 推荐(1)
摘要:原文地址:http://hi.baidu.com/chzhao007/blog/item/e9dbc5ac1191bc034b36d6df.html前几天,我竟被只小鸟小觑了一下,我承认本人blog中张贴出来的代码确实一般,所以我得在此在重审一下:本人张贴出来的代码都不是本人最终代码!本人blog中到现在确实用C写的代码很多,但不代表本人不崇尚C++的对象编程,只不过本人现在从事的许多方面用C和汇编搞起来比较方便,所以用C写东东比起C++来随手。为了使本人blog阐述的东东近于完善,在此就写下本人对C++类的一点点本质认识。在此再次重审:本人blog不代表本人现在真实水准。谁都要有点看家本事, 阅读全文
posted @ 2011-08-25 18:37 wangkangluo1 阅读(903) 评论(0) 推荐(0)
摘要:12原文链接:http://www.cppblog.com/ming81/archive/2012/09/26/192080.html相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。现将 阅读全文
posted @ 2011-08-15 11:10 wangkangluo1 阅读(453) 评论(0) 推荐(0)
摘要:原文地址:http://www.cppblog.com/Darren/archive/2009/03/13/76474.html#include<string>//使用string类时须包含这个文件#include<iostream>usingnamespacestd;intmain(){stringstr1;//输入与输出cout<<"输入字符串str1"<<endl;cin>>str1;getchar();cout<<str1<<endl<<endl<<endl; 阅读全文
posted @ 2011-08-15 10:47 wangkangluo1 阅读(345) 评论(0) 推荐(0)
摘要:原文地址:http://developer.51cto.com/art/201002/182596.htm我们为什么要使用C++操作符重载,又该如何正确的声明一个C++操作符重载呢?我们今天将会为大家详细介绍一下这两个方面的具体知识。AD:C++编程语言发展至今已经成为了开发领域中一个重要的应用语言。其中有很多比较高深的内容还值得我们在实践中去不断的探索。在这里我们就先从对C++操作符重载的应用方式的了解来进一步解读这一编程语言。C++指针与引用之间有何不同之处C++文件流操作具体实现方法探讨C++ enum枚举代码示例剖析C++动态数组应用方式探讨各种C++继承方式范例分析一、为什么使用C+ 阅读全文
posted @ 2011-08-07 14:35 wangkangluo1 阅读(973) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/TianFang/archive/2007/11/23/970446.htmlC++的new和delete功能小窥C++在new和delete的时候到底在干些什么?今天写了一个小程序测试一下C++在new和delete的时候到底在干些什么。intg_num = 3;classA{public:intvalue;A(inta):value(a){cout<<"A("<<a<<") called"<<endl;}~A() {cout<<&quo 阅读全文
posted @ 2011-08-06 19:17 wangkangluo1 阅读(410) 评论(0) 推荐(0)
摘要:原文地址:http://blog.minidx.com/2009/03/03/2209.html项目中经常用到各种不同的语言的朋友们应该会比较有这样的体会:一种开发语言用了比较长的时间,突然间转到另外一种语言的话,不管是数据类型或者语法结构,多多少少都会有那么一点不适应。哪怕MFC中的类型与标准C++也是一样的。下面是MFC/C++/C中字符类型CString, int, string, char*之间的转换的说明与举例,经常用的东西,相信对于用C/C++的朋友,还是比较有用的。1CString,int,string,char*之间的转换string转CStringCString.format 阅读全文
posted @ 2011-08-06 17:39 wangkangluo1 阅读(9720) 评论(0) 推荐(1)
摘要:原文地址:http://www.cnblogs.com/skynet/archive/2011/03/07/1975479.html为什么需要知道C/C++的内存布局和在哪可以可以找到想要的数据?知道内存布局对调试程序非常有帮助,可以知道程序执行时,到底做了什么,有助于写出干净的代码。本文的主要内容如下:源文件转换为可执行文件可执行程序组成及内存布局数据存储类别一个实例总结源文件转换为可执行文件源文件经过以下几步生成可执行文件:1、预处理(preprocessor):对#include、#define、#ifdef/#endif、#ifndef/#endif等进行处理2、编译(compiler 阅读全文
posted @ 2011-07-23 08:00 wangkangluo1 阅读(473) 评论(0) 推荐(0)
摘要:一、先说类成员变量及成员函数的的属性。1.public 与 private 的区别这两个的区别学过C++的都比较清楚,public的变量和函数在类的内部外部都可以访问,而private只有在类的内部可以访问1. protected 与 private如果一个类没有派生出其他类,那么protected和private是完全相同的,也就是说protected和private一样只能在类的内部访问,不能在类的外部访问。但是在派生其他类的情况下,protected和private的区别就体现出来了。private型变量只能在类本身中访问,在其派生类中也不能访问;而protected型的变量可以在派生类 阅读全文
posted @ 2011-07-22 21:52 wangkangluo1 阅读(614) 评论(0) 推荐(0)
摘要:原文地址:http://hi.baidu.com/baowup/blog/item/3a27465c86d71546faf2c066.html/cmtid/de1ef3f0de7554a0a40f52f7string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常string类的字 阅读全文
posted @ 2011-07-22 16:51 wangkangluo1 阅读(42381) 评论(6) 推荐(2)
摘要:原文地址:http://www.cnblogs.com/eric_lgf/archive/2009/08/02/1536746.htmlMap是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。下面举例说明什么是一对一的数据映射。比如一个班级中 阅读全文
posted @ 2011-07-22 16:11 wangkangluo1 阅读(1652) 评论(1) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/huking/archive/2009/09/25/1573995.htmlvector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随机存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率。 list就是数据结构中的双向链表(根据sgi stl源代码),因此它的内存空间可以是不连续的,通过指针来进行数据的访问,这个特点使得它的随机存取变的非 阅读全文
posted @ 2011-07-22 16:07 wangkangluo1 阅读(877) 评论(0) 推荐(0)
摘要:原文地址:*********************************C++复习总结************************************1.函数模板:实际上是建立一个通用函数,其函数类型和参数类型不具体指定,用一个虚拟的类型来代表,这个通用函数就是函数模板。#include<iostream>template<typenameT>Tconst&max(Tconst&a,Tconst&b){returna>b?a:b;}intmain(){intia=16,ib=12;std::cout<<"a 阅读全文
posted @ 2011-07-22 16:02 wangkangluo1 阅读(1124) 评论(0) 推荐(0)