C++ - 文章列表
-
c++面向对象之-多态的实现方法
面向对象技术最早出现于1960年代的Simula 67系统,并且在1970年代保罗阿托实验室开发的Smalltalk系统中发展成熟。然而对于大部分程序员来说,C++是第一个可用的面向对象程序设计语言。因此,我们关于面向对象的很多概念和思想直接来自于C++。但是,C++在实现面向对象中关键的多态性时,选择了与Smalltalk完全不同的方案。其结果是,尽管在表面上两者都实现了相似的多态性,但是在实践中却有着巨大的区别。具体的说,C++的多态性实现更加高效,但是并不适用于所有场合。很多经验不足的C++开发者不
-
C++重载与覆盖详谈
网上的关于重载、覆盖和隐藏到处都搜得到,但发现讲的都是什么是什么方式,并没有细讲到每一个要点,还有最近几个论坛发现有些人问这方面的问题,便写了一下自己的关点,供初学者学习.下面我们来讨论一下.<以下内容由作者stylev原创,如有转载,请注明>-------------------------------------------------------------------------------------------------------------------------- 重载(overloa
-
MFC如何全屏 c++实现全屏显示的方法
很多的播放器都有快捷键控制窗口以全屏幕的方式显示。给应用程序加上全屏幕的功能,并不需要很多的代码,比如给一个基于对话框的应用程序加上全屏功能只需要以下少量代码就可以工作了。 void CFullScreenDlg::FullScreenView(void) { RECT rectDesktop; WINDOWPLACEMENT wpNew;  
-
c++小数格式化,如何格式化浮点数
在许多应用程序领域中,都需要控制小数点后的小数位,但是浮点数对此不能提供直接的支持。怎样对程序中的浮点数据进行\"整齐\"地格式化呢?在此我们有一个迂回的方法,先把它们转换为字符串,格式化后以文本形式显示出来。 在日常编程中--包括对话框、关系数据库、金融程序、SMS程序及一切处理数据文件的程序,需要控制小数点后的小数位的情况非常普遍,本文中将要讲解如何用简单的方法来控制小数位,另外,还要揭开字符串及数据精度的一点点小秘密。 问题的引出 如有一个函数,其可接受一个long double参数
-
学习C++程序设计推荐阅读书籍
C++是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,C++已经在许多重要的领域大获成功。 然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈反弹,而在高阶程序设计领域,Java和C#正在不断蚕食着C++的地盘。也许C++与C合为一体永远都是一 个梦想,也许Java和C#的狂潮终将迫使C++回归本位 — 回到它有着根本性优势的开发领域:低级系统程序设计、高级大规模高性能应用设计、嵌入式程序设计以
-
类为何物?关于类的思考
一个现实存在的物体可以用一些特定的属性值来完全的确定。我们给予这个物体一个方面一个值。他的状态就完全的确定了。于是对象1=(12,34,34)对象2=(23,34,56)相应的类=(shuxing1,shuxing2,shuxing3)我们对shuxing1,shuxing2,shuxing3给予特定的值。于是就形成了万千的个体。万千的个体形成的集合=(对象1,对象2...)于是我们的运动,运算实际上就是对象之间的切换。但是对象的切换需要特定的操作。这也就是类的方法。我们通过对方法的不同输入。于是可以在不同的对象之间切换。于是其他的对象与这一系列对象的交流就是通过方法的输入来完成的。/****
-
More Effective C++之智能指针
智能指针具有非常强大的能力,谨慎而明智的选择能带来极大的好处。我不否认智能指针的能力,虽然我在之前的否认过auto_ptr。可能由于我自身能力的限制,体会不到auto_ptr的好处,但这样的可能性我觉得已经不大了。但auto_ptr是最简单的智能指针,在它的周围存在大量的作品,这些作品包括Boost、Loki、ACE等等,但是可惜的是目前没有一个我能够说我很熟悉,那么本篇只是作为一个入门,在此基础上,应当阅读Boost、Loki、ACE相关源码。 Smart Pointer的核心是实现template <class T>T& SmartPointer<T>::
-
VC++大数据量绘图时无闪烁刷屏技术实现
引言 当我们需要在用户区显示一些图形时,先把图形在客户区画上,虽然已经画好但此时我们还无法看到,还要通过程序主动地刷新用户区,强制Windows发送一条WM_PAINT消息,这将引发视类OnDraw函数简单地将所有的图形对象重画,这样才完成了图形的显示工作,但在刷新的同时会引起较明显的闪烁尤其是当画面面积较大、图像元素过多时尤为明显甚至达到无法正常工作的地步。因此,我们需要做相应的处理。本文介绍了采用先在内存中绘制图形,然后再把绘好的图形以位图方式从内存拷贝到窗口客户的消除刷屏闪烁的一种方法。 WM_PAINT消息和无效区 ·在用户移动窗口或显示窗口时,窗口中先前被隐藏的区域重新可见。