- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 C++智能指针
一、剖析C++标准库智能指针(std::auto_ptr) 1.Do you Smart Pointer? Smart Pointer,中文名:智能指针, 舶来品? 不可否认,资源泄露(resource leak)曾经是C++程序的一大噩梦.垃圾回收 机制(Garbage Collection)一时颇受注目.然而垃圾自动回...
2009-08-22 11:02:35 67
原创 C++拷贝赋值函数
运用Copy函数和Copy assignment函数进行赋值操作应该注意的两点:1) 复制所有local成员变量2) 调用所有基类内的适当的copying函数。这里面有一个很可怕的规则:当你不用编译器默认的拷贝函数或者赋值函数时,编译器也不会对你自己写的这两个函数进行报警。所以必须要很谨慎和小心。对于没有继承的类来说,写这两个函数一般注意指针类型...
2009-08-22 09:51:41 153
原创 内存管理详解
程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。...
2009-08-21 21:56:37 55
原创 C++中的引用
引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。 一、引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作...
2009-08-21 16:54:17 64
原创 c++的缺点
从编程的未来这篇文章http://utensil.iteye.com/blog/367415 想到C++和Java语言的爽与不爽:事实上Java的面向对象模型要比C++要好,C++是一个追求效率而不惜牺牲其他空间和优美方面的语言。一、C++没有interface的概念,这是面向对象概念的很大的一个缺失,当然纯抽象类就是interface,但至少是概念上的一种缺失。因为interface...
2009-08-21 10:38:57 642
原创 java中的引用
在java和C++中都采用了引用这个概念,但是二者的行为并不一样。java的引用其实更象c++中的指针,而非c++中的引用,的确c++的指针给ren们带来强大威力的同时,也给我ren们带来了危险,大多的攻击也都是利用指针让系统崩溃。在许多书上都没有见到关于java中reference行为的更详细的探讨,本文便从与c++的的区别谈起: 一.先看java中的引用:Java代码 ...
2009-08-21 10:19:13 94
原创 原型模式
Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。 因为Java中的提供clone()方法来实现对象的克隆(具体了解clone()按这里),所以Prototype模式实现一下子变得很简单. 以勺子为例: Java代码 p...
2009-08-21 10:04:09 51
原创 模式设计
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。 GoF的“设计模式”是第一次将设计模式提升到理论...
2009-08-21 09:55:12 80
原创 C++中输入函数的比较
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息;1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>> 用法1:最基本...
2009-08-20 10:15:09 75
原创 新手表现
现在有些年轻人的心态比较浮躁,大致总结以下『四点表现』:1. 眼高过顶;2. 垂手过膝;3. 期望值高;4. 积极性低。深层次的客观原因大致是『四个没有』:1. 没有吃过苦;2. 没有干过活;3. 没有说过话;4. 没有当过家。一般都具有『四个特征』:1. 独生子女;2. 毕业新人;3. 沉默寡...
2009-08-20 10:12:42 94
原创 回调函数
当 函数指针 做为函数的参数,传递给一个被调用函数,被调用函数就可以通过这个指针调用外部的函数,这就形成了回调。windows程序中 WndProc 就是使用回调的典型形式。一般的程序中回调函数作用不是非常明显,可以不使用这种形式。最主要的用途就是当函数不处在同一个文件当中,比如动态库,要调用其他程序中的函数就只有采用回调的形式。#include "stdio....
2009-08-18 15:03:01 53
原创 VC6.0编译器详解
大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? 闲...
2009-08-14 21:32:27 107
原创 编译器
Dev-C++本软件就不用说了,这是pfan论坛上的首选IDE环境;他默认安装minGW作为编译器——就是windows化了的GCC编译器。版本应该是3.4;由于其编辑器使用简单,而内核gcc3.4对c99和c++2003的支持度都比较高,所以,这个软件比较适合标准C/C++初学者!除了支持外部库,Dev-C++还支持自己的开发包,你可以从升级“包”这个功能上获得许多有用的东西;...
2009-08-14 21:30:41 210
原创 头文件
一、声明与定义的区分: 一个声明就是一个定义,除非 :声明:引入名称定义:引入实体1.它声明了一个没有详细说明函数体的函数2.它包含一个extern定义符且没有初始化函数或函数体3.它是一个包含在一个类定义之内的静态类数据成员的声明,它必须在最终程序的某处准确的定义一次4.它是一个类名声明,如class test;5.它是一个typedef声明。 言外之意:...
2009-08-14 21:29:35 56
原创 头文件与同名源文件的关系
一、源文件如何根据#include来关联头文件 1,系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找。 #include 2,用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找,然后在到C++安装目录(比如VC中可以指定和修改库文件查找路径,Unix和Linux中可以通过环境变量来设定)中查找,最后在系统文件中查找。 #include “xxx.h” ...
2009-08-14 21:28:02 574
原创 学好C++的50条忠告
1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被 VC、BCB、BC、MC、TC等词汇所迷惑——他们都是...
2009-08-14 15:18:01 75
原创 书籍推荐
1、Java Java编程语言(第三版)---Java四大名著----James Gosling(Java之父) Java编程思想(第2版)----Java四大名著----Bruce Eckel Java编程思想(第3版)----Java四大名著----------------Bruce Eckel JAVA 2核心技术 卷I:基础知识(原书第7版)---Java四...
2009-08-14 14:50:14 81
原创 先学好基础吧
我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#,VB.Net这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web学院”。96,9...
2009-08-14 14:37:19 118
原创 相信吗C++愚弄了我们所有人
一、C++之父一夕谈 在1998年的元旦,Bjarne Stroustrup(C++之父)接受了IEEE《计算机》杂志记者的专访。编辑很自然的认为他会对于过去七年来使用他创建的语言进行面对对象设计做一个历史性的回顾。而在这个专访中,记者获得了更有价值的新闻,但是最后编辑决定为了整个IT产业,这个稿子不能发表,但是就像其它被砍掉的新闻,往往还是弄得路人皆知的。 这一篇适当时专...
2009-08-14 14:35:41 196
原创 C++编程
C++语言是一个面向对象的语言,使用C++编写的代码更加简捷、高效,更具可维护性和可重用性。但是很多人使用了C++语言后却感到C++与C编程没有什么区别。这其实是由于对C++语言的特点和特色理解和使用不够造成的。事实上,没有任何一个程序员使用C语言的编程效率可以超过C++语言的。 一、使用new和delete进行动态内存分配和释放 运算符new和delete是C++新增的运算符,提供...
2009-08-14 14:27:21 76
原创 学习VC++ 6.0
Visual C++ 6.0 以其功能强大、用户界面友好而倍受程序员们的青睐。但是,在当前的Microsoft 基本类库4.2 版本中,大约有将近 200 个类,数千个函数,加之Microsoft 公司隐藏了一些技术细节,使得人们深入学习MFC变得十分困难。 MFC的AppWizard可以生成三种类型的应用程序:基于对话框的应用、单文档应用(SDI)和多文档应用(MDI)。前两者的...
2009-08-14 13:50:57 103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人