C++学习心得
nirvana_newbie
要想得到就一定要付出不要把光阴埋葬乘着风追落到有永恒的地方
展开
-
构造和析构函数中绝不调用虚函数
原文地址:http://dev.yesky.com/441/2033941.shtml转载 2013-04-22 10:09:08 · 438 阅读 · 0 评论 -
华为专家面试题分享
好久不写博客了,这段时间在研究COM。正好这段时间,公司的几位同事应聘华为专家的岗位,旁听了电话面试,获取了一些面试题,与大家分享。1.新开一个进程,监听其他进程openFile()操作的次数。2.TCP/IP协议如何保证数据传输不丢失。3.Http协议如何实现断点续传。4.CreateFile()与strcpy()的区别。5.32位系统能获得的最大内存,以及最大的用户使用内存原创 2013-06-20 12:50:37 · 1195 阅读 · 0 评论 -
【数据结构】中缀表达式转换后缀表达式
我们平时写的数学表达式都是中缀表达式,如:a+b*c+(d*e+f)*g现在要用计算机来实现这样的表达式,可以转换成后缀表达式再进行运算。自己写了一段代码如下:#include #include using namespace std; void midtotail(char *a){ stack c; while (*a!='\0') { if(*a >= '0'原创 2013-05-13 17:06:35 · 906 阅读 · 0 评论 -
C++Primer第十章TextQuery
昨天学习了容器和文件流操作,写了C++Primer书中的TextQuery类。textquery.h#ifndef TEXTQUERY_H#define TEXTQUERY_H#include #include #include #include #include #include using namespace std;class TextQuery{pu原创 2013-05-09 11:49:09 · 539 阅读 · 0 评论 -
C++面试之基础知识集锦
1.static关键字作用总结 http://www.cnblogs.com/biyeymyhjob/archive/2012/07/19/2598815.html2.指针数组与数组指针的区别 http://www.cnblogs.com/hongcha717/archive/2010/10/24/1859780.html3.在C++ 程序中调用被C 编译器编译后的函数,为原创 2013-04-24 17:37:55 · 554 阅读 · 0 评论 -
C++指针学习心得(二)
读《高质量C++编程指南》的时候,看到一个有趣的题目:char *p = "abc";cout<<p[0]<<p[1]<<p[2]<<endl;//可以输出p[1] = "B";//不可以复制 不知道为什么不可以复制,于是写下了*p = "aBc";//可以 这样是可以的。认真分析原因,得知:*p的值是"abc";系统自动为常量"abc"分配了地址,所以指针p指向原创 2013-04-18 11:41:08 · 629 阅读 · 0 评论 -
C++ fstream读写文件
#include#include#include#includeusing namespace std;void main(){ fstream f1; f1.open("d:\\me1.txt",fstream::in|fstream::out); //打开文件用于写,若文件不存在就创建它 if(!f1)return; //打原创 2013-05-09 10:42:35 · 994 阅读 · 0 评论 -
C++指针学习心得(一)
最近换了新工作,从PHP转C++,毕业两年都没碰过C++了,现在突击复习,从《C++ Primer中文第四版》开始。 第一遍看完,对指针的认识是“存放的是对象的地址,通过解引用*来获取值”。自认为应该能掌握指针了,早上看了一篇文章,地址http://www.cnblogs.com/lazycoding/archive/2013/04/17/3025453.html,对指针又稀里糊涂毫不了原创 2013-04-18 11:07:02 · 896 阅读 · 0 评论 -
一个表达式中出现多个自增自减运算符的求值问题
昨天想进一个群,被群主拒绝,理由是一道自增运算符的题目。虽然自己猜出的答案和编译结果一样,但是百度了一下,发现网上讲的有点模棱两可,于是在同事的指导下查看了汇编代码才解决了心头的疑惑。首先先看一下三种运算表达式:#includeusing namespace std;int main(){ int i=2; cout<<i++*i++*i++<<endl; int j=3;原创 2013-05-21 10:56:37 · 1432 阅读 · 1 评论 -
基类派生类虚函数的默认形参问题
最近做了一份笔试题,发现一个有意思的题目,关于虚函数默认形参的。代码如下#includeusing namespace std;class A{public: virtual void f(int n=10) { cout<<"A::n="<<n<<endl; }};class B:public A{public: virtual void f(int n=20)原创 2013-05-20 14:20:35 · 1384 阅读 · 0 评论 -
memset与memcpy用法
memset() 函数原型:void *memset(void *s,int c,size_t n)作用:将从指针s指向的地址开始n个字节的内存赋值为c。memcpy()函数原型:void *memcpy(void*dest, const void *src, size_t n);作用:由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址原创 2013-04-19 16:48:18 · 672 阅读 · 0 评论 -
构造函数为什么不能是虚函数
原文地址:http://www.cnblogs.com/lixiaohui-ambition/archive/2012/08/28/2660708.html原文作者列出了五条原因,但是我只能理解第一条红色划线部分,呵呵,其余的感觉有点雷同。等以后知识更广泛了再回头理解后面四条的原因吧。1. 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个转载 2013-04-22 11:00:35 · 499 阅读 · 0 评论 -
C++支持多态的方法
C++以下列方法支持多态:1.经由一组隐式的转化操作。例如把一个derived class指针转化为一个指向其public base type的指针:Derived *pd = new Base();2.经由virtual function 机制:pd->foo();3.经由 dynamic_cast 和 typeid 运算符:if( Base *pb = dynamic_cast(p原创 2013-04-22 11:12:42 · 540 阅读 · 0 评论 -
如何将多态与现实应用结合起来
最近在看C++基础,多态是C++面相对象的一个特征。书上讲的很详细,但我向来对文字不敏感,必须要在脑海里构建抽象模型才能深刻理解。否则就是纸上谈兵了。 思考了一会儿,想出一个案例:我要出门了,肯定要选择一个交通工具,交通工具有汽车、自行车,我可以选择其一。 于是,我把这个案例虚拟化。交通工具的出行虚拟成类Transport,汽车的出行虚拟成类Car,自行车的出行虚拟成类Bike原创 2013-04-26 14:54:39 · 557 阅读 · 0 评论 -
虚析构函数的学习心得
首先来看一段传统的代码:#include using namespace std;class A{public: A(){} virtual ~A(){cout<<"~A"<<endl;} //第一处};class B:public A{public: B(){} virtual ~B(){cout<<"~B"<<endl;} /原创 2013-04-27 12:01:45 · 661 阅读 · 0 评论 -
C++运算符优先级
原创 2013-04-27 15:21:53 · 736 阅读 · 0 评论 -
类模板的.h和.cpp文件分离
templateclass Abc{public: T a;public: void setvv(T b); T getvv();};#include "b.h"templatevoid Abc::setvv(T b){ a = b;}templateT Abc::getvv(){ return a;}#include "b.cpp"#inc原创 2013-07-18 11:27:17 · 963 阅读 · 0 评论