内容列表
- Effective C++ 2e Item14
- 条款14: 确定基类有虚析构函数
有时,一个类想跟踪它有多少个对象存在。一个简单的方法是创建一个静态类成员来统计对象的个数。这个成员被初始化为0,在构造函数里加1,析构函数里减1。(条款M26里说明了如何把这种方法封装起来以便很容易地添加到任何类中,“my article on counting objects”提供了对这个技术的另外一些改进)
设想在一个军事应用程序里,有一个表示敌人目标的类
- 分类:编程语言 查阅全文
- Effective C++ 2e Item16
- 条款16: 在operator=中对所有数据成员赋值
条款45说明了如果没写赋值运算符的话,编译器就会为你生成一个,条款11则说明了为什么你会经常不喜欢编译器为你生成的这个赋值运算符,所以你会想能否有个两全其美的办法,让编译器生成一个缺省的赋值运算符,然后可以有选择地重写不喜欢的部分。这是不可能的!只要想对赋值过程的某一个部分进行控制,就必须负责做赋值过程中所有的事。
实际编程中,这意味着写赋
- 分类:编程语言 查阅全文
- . Framework Sdk Beta2 名字空间在不同平台上的支持情况!
-
. Framework Sdk Beta2 名字空间在不同平台上的支持情况!
Namespaces Not Supported on all Platforms
Namespace
Item
Win
XP
Win
XP
- 分类:编程语言 查阅全文
- Effective C++ 2e Item7
- 条款7:预先准备好内存不够的情况
operator new在无法完成内存分配请求时会抛出异常(以前的做法一般是返回0,一些旧一点的编译器还这么做。你愿意的话也可以把你的编译器设置成这样。关于这个话题我将推迟到本条款的结尾处讨论)。大家都知道,处理内存不够所产生的异常真可以算得上是个道德上的行为,但实际做起来又会象刀架在脖子上那样痛苦。所以,你有时会不去管它,也许一直没去管它。但你心里一定还是深深
- 分类:编程语言 查阅全文
- Effective C++ 2e Item17
-
条款17: 在operator=中检查给自己赋值的情况
做类似下面的事时,就会发生自己给自己赋值的情况:
class X { ... };
X a;
a = a;  
- 分类:编程语言 查阅全文
- 使用smtp发送邮件(源码)
-
源文件:
#include <vcl.h>#pragma hdrstop
#include "sendmail.h"#include "mmsystem.h"
#pragma package(smart_init)
struct RecvEmailInfo{ AnsiString
- 分类:编程语言 查阅全文
- 软件测试问题登记表
- 软件开发评测规范
附录A《软件测试问题登记表》(F01)
《软件测试问题登记表》
软件系统:
- 分类:编程语言 查阅全文
- Effective C++ 2e Item15
- 条款15: 让operator=返回*this的引用
C++的设计者Bjarne Stroustrup下了很大的功夫想使用户自定义类型尽可能地和固定类型的工作方式相似。这就是为什么你可以重载运算符,写类型转换函数(见条款M5),控制赋值和拷贝构造函数,等等。他做了这么多努力,那你最少也该继续做下去。
让我们看看赋值。用固定类型的情况下,赋值操作可以象下面这样链起来:
int w, x, y,
- 分类:编程语言 查阅全文
- C++BUILDER非可视组件的消息处理技巧
-
C++BUILDER非可视组件的消息处理技巧
一个非可视的组件必须对Windows操作系统或用户定义的消息作出响应。然而,由于一个非可视组件没有窗口,因此它也没有窗口句柄,自然它也不能接收到消息,为了解决这一问题,我们的思路是创建一个隐藏的窗口,使非可视组件能够接收到消息。
为了给你的非可视组件创建一个隐藏的窗口,需要有以下:
1.一个私有变量型(Privat
- 分类:编程语言 查阅全文
- 软件测试问题汇总表
- 软件开发评测规范
附录B《软件测试问题汇总表》(F02)
《软件测试问题汇总表》
月份: &n
- 分类:编程语言 查阅全文
- 软件使用问题登记表
- 软件开发评测规范
附录C《软件使用问题登记表》(F03)
《软件使用问题登记表》
序号
时间
用户名称
系统名称/版本
错误描述
错误类型
备注
&
- 分类:编程语言 查阅全文
- Effective C++ 2e Item20
- 条款20: 避免public接口出现数据成员
首先,从“一致性”的角度来看这个问题。如果public接口里都是函数,用户每次访问类的成员时就用不着抓脑袋去想:是该用括号还是不该用括号呢?——用括号就是了!因为每个成员都是函数。一生中,这可以避免你多少次抓脑袋啊!
你不买“一致性”的帐?那你总得承认采用函数可以更精确地控制数据成员的访问权这一事实吧?如果使数据成员为public,每个人都可以对它
- 分类:编程语言 查阅全文
- C++Builder定制系统菜单
-
学习C++Builder的资料真的很少,下面是从一本书中学到的,不知对大家有没有帮助,拿出来给大家看看:
通常在应用程序的主窗体中,利用鼠标左键点击左上角的图标,会弹出一个菜单,称之为“系统菜单”。 在窗体中并没有系统菜单对应的组件,所以有时我们需要定制系统菜单时就比较麻烦。具体可以能过下面的步骤实现:&n
- 分类:编程语言 查阅全文
- Effective C++ 2e Item19
-
条款19: 分清成员函数,非成员函数和友元函数
成员函数和非成员函数最大的区别在于成员函数可以是虚拟的而非成员函数不行。所以,如果有个函数必须进行动态绑定(见条款38),就要采用虚拟函数,而虚拟函数必定是某个类的成员函数。关于这一点就这么简单。如果函数不必是虚拟的,情况就稍微复杂一点。
看下面表示有理数的一个类:
class Rational {public: R
- 分类:编程语言 查阅全文
- C#进阶1
-
SUNWEN教程之----C#进阶(零)[email protected]
写在前面的话
在写这些文章之前,我对C#一无所知.只从前辈那里听说了一些,说他很像JAVA.因为我这段时间一直在看JAVA,结果什么明堂没看出来(只能怪我太笨:),其实我想还是没有实践的机会),所以就很想换换口味.其实很早就听说了C#,想看一看这个东东,只是上M$的网站一看,.NET的东东要一
- 分类:编程语言 查阅全文
- C#进阶3
-
SUNWEN教程之----C#进阶(三)[email protected]
终于又到一个白天了,起床,伸个懒腰,又坐到了电脑前面.今天我要向大家讲的是C#的数组(Arrays).C#中的数组和其它一些优秀的语言一样,也是从0开始计的,这从我们以前的例子里可以看出来,也就是说,一个数组的第一个元素是a[0],而不是像VB的a(1).虽然是这样,但是你还是要注意一些区别.
- 分类:编程语言 查阅全文
- 软件开发评测规范
- 软件开发评测规范
拟制:luhongjun
1 目的
本程序规定了对软件产品开发和软件评测工作的考评标准。
2
- 分类:编程语言 查阅全文
- C#进阶1
-
SUNWEN教程之----C#进阶(零)[email protected]
写在前面的话
在写这些文章之前,我对C#一无所知.只从前辈那里听说了一些,说他很像JAVA.因为我这段时间一直在看JAVA,结果什么明堂没看出来(只能怪我太笨:),其实我想还是没有实践的机会),所以就很想换换口味.其实很早就听说了C#,想看一看这个东东,只是上M$的网站一看,.NET的东东要一
- 分类:编程语言 查阅全文
- C#进阶2
-
SUNWEN教程之----C#进阶(二)[email protected]
好了,I COME BACK,下面的代码显示了我们如何打印多个参数:000: // CommandLine\cmdline1.cs
001: using System;
002:
003: public class CommandLine
004: {
005: public
- 分类:编程语言 查阅全文
- Effective C++ 2e Item18
- 类和函数:设计与声明
在程序中声明一个新类将导致产生一种新的类型:类的设计就是类型设计。可能你对类型设计没有太多经验,因为大多数语言没有为你提供实践的机会。在C++中,这却是很基本的特性,不是因为你想去做才可以这么做,而是因为每次你声明一个类的时候实际上就在做,无论你想不想做。
设计一个好的类很具有挑战性,因为设计好的类型很具有挑战性。好的类型具有自然的语法,直观的语义和高效的实现。在C++中
- 分类:编程语言 查阅全文