老钟古

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

随笔分类 -  C++学习

1 2 下一页

摘要:程序员每天该做的事1、总结自己一天任务的完成情况最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多2、考虑自己明天应该做的主要工作把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法出错不要紧,最重要的是不要重复犯相同的错误,那是愚蠢4、考虑自己一天工作完成的质量和效率能否还能提高一天只提高1%,365天你的效率就能提高多少倍你知道吗? (1+0.01)^365 = 37 倍5、看一个有用的新闻网站或读一张有用的报纸,了解业界动态闭门造车是不行的,了解一下 阅读全文
posted @ 2011-04-21 15:38 老钟古 阅读(510) 评论(0) 推荐(0)

摘要:以前对break和continue的使用都比较模糊,今天用了个简单的例子明白了其中的用法。程序只是为了说明break和continue的区别,写的很简单。1#include<iostream>2usingnamespacestd;34intmain()5{6inta[10][10]={0};7for(size_ti=0;i!=10;++i)8for(size_tj=0;j!=10;++j)9a[i][j]=i;1011for(size_ti=0;i!=10;++i)12for(size_tj=0;j!=10;++j)13{14if(a[i][j]==5)15break;16if(a 阅读全文
posted @ 2011-04-05 11:38 老钟古 阅读(722) 评论(0) 推荐(0)

摘要:记录下自己的学习笔记和一些相应的常见问题,有错误的地方欢迎指正。 问题1、在类内部定义和类外部定义的成员函数有什么区别? 答:在类内部定义的成员函数默认是为inline(内联)函数,而在外部定义的成员函数需要加上类的作用域和默认其不是inline函数。 问题2、怎么定义成员函数为const成员函数? 答:const成员不能改变其所操作的对象的数据成员,当声明在类的内部和定义在类的外部时,const必须同时出现在声明和定义中。 问题3、类的背后蕴涵里什么思想? 答:类背后蕴涵的基本思想是数据抽象和封装。数据抽象是一种依赖于接口和实现分离的编程和设计技术;封装是一项将低层次的元素组合起来形成新的、 阅读全文
posted @ 2011-03-27 11:26 老钟古 阅读(415) 评论(0) 推荐(0)

摘要:在一些面试过程的时候,有时候会问到有关内存对齐相关的问题,比如结构体的大小,这些问题的回答就必须要考虑内存对齐的问题了。记得有次电话面试,面试官问我一个空类的大小是多少,当时自己回答是0字节,但后来验证了一下才知道原来是1字节。为什么空类的大小是1字节呢,而不是4字节或其它呢? 从下面的代码结合来分析一下: #include <iostream> #include <cstdio> using namespace std; class Empty { }; int main() { printf("%d\n", sizeof(Empty)); Emp 阅读全文
posted @ 2011-03-15 18:49 老钟古 阅读(401) 评论(0) 推荐(0)

摘要:今天,在看《Effective C++》书籍的时候,看到const的在作为函数参数传递时的应用,一般函数参数的传递有三种方式,passed by pointer-to-const、passed by reference-to-const和passed by value,相信对这三种方式都应该比较熟悉,普通的内置类型三者的效率都差不多,但对于用户自定义的类型,比如struct和class这些,使用前两种的效率就要高一些了。还有就是前两种的使用是改变实参本身的值,而后一种则只是改变实参副本的值,对实参本身并没有改变。下面举一个简单的交换两个数的函数,我想通过这个例子应该能够说明问题。 1#incl 阅读全文
posted @ 2011-03-12 16:49 老钟古 阅读(490) 评论(0) 推荐(0)

摘要:有时候我们做一些笔试或者是面试中可能会遇到定义一些类,然后叫你写出类的构造函数和析构函数调用顺序。这时候我们就需要对这个有了解才能够正确的做出来。先看看下面的一段代码。1#include<iostream>2usingnamespacestd;34classA{5public:6A(){7cout<<"A()"<<endl;8}9~A(){10cout<<"~A()"<<endl;11}12};1314classB:publicA{15public:16B(){17cout<<&qu 阅读全文
posted @ 2011-03-04 10:57 老钟古 阅读(4223) 评论(0) 推荐(0)

摘要:简单的介绍一下指针和引用的区别,重点是引用。#include<iostream>#include<cstdio>usingnamespacestd;intmain(){intival=1024,ival2=2048;int*pi=&ival,*pi2=&ival2;pi=pi2;cout<<*pi<<endl;cout<<*pi2<<endl;cout<<pi<<''<<pi2<<endl;int&ri=ival,&ri2=iv 阅读全文
posted @ 2011-02-26 10:00 老钟古 阅读(491) 评论(0) 推荐(0)

摘要:下面是程序实现的源代码,1#include<iostream>2#include<cstdio>3usingnamespacestd;45intmain()6{7doubleobj=3.14;8double*pd=&obj;910void*pv=&obj;11pv=pd;1213inta=5;14int*ip=&a;15int*pa=0;16pa=ip;17*pa=*ip;1819return0;20}下面的代码是在VC++6.0调试时候查看反汇编的显示结果,重点看红颜色的标记代码和相应解释11: #include<iostream> 阅读全文
posted @ 2011-02-26 09:21 老钟古 阅读(4022) 评论(0) 推荐(0)

摘要:http://www.codeproject.com/KB/threads/winspy.aspx Three Ways to Inject Your Code into Another Process http://www.codeproject.com/KB/system/hooksys.aspx API hooking revealed http://www.codeproject.com/KB/DLL/XDllPt1.aspx Step by Step: Calling C++ DLLs from VC++ and VB - Part 1 http://www.codepr 阅读全文
posted @ 2010-12-31 12:41 老钟古 阅读(162) 评论(0) 推荐(0)

摘要:记住sizeof是一个运算符,而不是一个函数。在Windows中,下面的结果都是显示为24个字节,这样可以表明在一个struct中,最终的字节数要是在结构体中的占最大字节数的整数倍,这也是内存对齐的要求。看下面这个例子:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--1#includeiostream2usingnamespacestd;34structstr{5charc;6inti;7floatf;8doubled;9};1011str 阅读全文
posted @ 2010-12-13 17:48 老钟古 阅读(1052) 评论(0) 推荐(0)

摘要:黑客入门教材 第一节、黑客的种类和行为 第二节、黑客应掌握的基本技能 第一章、基本理论和基本知识 第一节、网络安全术语解释 第二节、常用黑客软件用途分类 第三节、学习黑客的基本环境 第一节、黑客的种类和行为 以我的理解,“黑客”大体上应该分为“正”、“邪”两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善... 阅读全文
posted @ 2010-10-29 22:54 老钟古 阅读(2135) 评论(2) 推荐(0)

摘要:1、JavaJava编程语言(第三版)---Java四大名著----James Gosling(Java之父)Java编程思想(第2版)----Java四大名著----Bruce EckelJava编程思想(第3版)----Java四大名著----------------Bruce EckelJAVA 2核心技术 卷I:基础知识(原书第7版)---Java四大名著-----Cay Horstman... 阅读全文
posted @ 2010-10-29 22:53 老钟古 阅读(423) 评论(0) 推荐(0)

摘要:这个标题可能定义的不是很明确,在VS2005中看到的汇编代码可以看出,没有对循环变量i进行初始化或者赋初值的情况比起有的情况会多几条不同的汇编指令。这一点自己也不是很明白,但可以肯定的是我们不能够犯这么低级的错误。如果可以,欢迎提出见解。详情看代码:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://w... 阅读全文
posted @ 2010-10-19 23:37 老钟古 阅读(341) 评论(0) 推荐(0)

摘要:摘要:介绍C++引用的基本概念,通过详细的应用分析与说明,对引用进行全面透彻地阐述。   关键词:引用,const,多态,指针  引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用... 阅读全文
posted @ 2010-10-08 15:09 老钟古 阅读(318) 评论(0) 推荐(0)

摘要:以下的讨论都是在不用#pragma pack( num )下的结果,num表示以多少个字节对齐。初学者在学习面向对象的程序设计语言时,或多或少的都些疑问,我们写的代码与最终生编译成的代码却 大相径庭,我们并不知道编译器在后台做了什么工作.这些都是由于我们仅停留在语言层的原因,所谓语言层就是教会我们一些基本的语法法则,但不会告诉我们为什么这么做?今天和大家谈的一点感悟就是我在学习编程过程中的一点经验... 阅读全文
posted @ 2010-10-06 16:22 老钟古 阅读(3625) 评论(3) 推荐(0)

摘要:面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的 就const直接可以取代c中的#define 以下几点很重要,学不好后果也也很严重 const 1. 限定符声明变量只能被读 const int i=5; int j=0; ... i=j; //非法,导致编译错误 j=i; //合法 2. 必须初始化 const int i=5; //合法 cons... 阅读全文
posted @ 2010-10-06 15:40 老钟古 阅读(20849) 评论(2) 推荐(1)

摘要:全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存 阅读全文
posted @ 2010-09-25 23:46 老钟古 阅读(3428) 评论(1) 推荐(0)

摘要:由汇编代码我们可以清楚的看到,C++中的函数重载对于非对象的重载基本上是一样的,只是在调用的时候采用不同的名称实现(VC++ 6.0实现)程序的代码:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--1#include<iostream>... 阅读全文
posted @ 2010-09-24 20:07 老钟古 阅读(312) 评论(0) 推荐(0)

摘要:C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方... 阅读全文
posted @ 2010-09-19 22:17 老钟古 阅读(164) 评论(0) 推荐(0)

摘要:http://blog.csdn.net/callmeback/archive/2009/03/31/4039304.aspx说实话,从来没有感觉到这个关键字有用,直到今天。explicit的意思是明显的,和它相对应的一个词是implicit意思是隐藏的。我参考了MSDN和《c++标准程序库》对这个关键字的描述,并参考了网络上对这个关键字的解释。现将它的使用方法和总结记录如下:首先这个关键字只能用... 阅读全文
posted @ 2010-09-19 22:13 老钟古 阅读(650) 评论(0) 推荐(1)

1 2 下一页