C++ 中重载 + 操作符的正确方法 |
| 用户定义的类型,如:字符串,日期,复数,联合体以及文件常常重载二元 + 操作符以实现对象的连接,附加或合并机制。但是要正确实现 + 操作符会给设计,实现和性能带来一定的挑战。本文将概要性地介绍如何选择正确的策略来为用户定义类型重载这个操作符。考虑如下的表达式: int x=4+2; 内建的 + 操作符有两个类型相同的操作数,相加并返回右值 6,然后被赋值给 x。我们可以断定内 |
深入探讨C++中的引用 |
| 摘要:介绍C++引用的基本概念,通过详细的应用分析与说明,对引用进行全面、透彻地阐述。 关键词:引用,const,多态,指针 引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可 |
C++操作符重载的变态用途之子类转换 |
| 如果类的成员变量是特定类和自定义结构,使用该类名或结构作为操作符进行重载。(当然是基本类型也可以,不过实用性不强,只会降低代码可读性。) 如下,一个CPerson,强行转换为hand,也可以使用。 类似于现实,我们只会对某个实物的具体特征表示强烈的兴趣,也就是特征聚焦的意思。如HR部门只 |
C++程序设计从零开始之表达式 |
| 本篇是此系列的开头,在学英语时,第一时间学的是字母,其是英语的基础。同样,在C++中,所有的代码都是通过标识符(Identifier)、表达式(Expression)和语句(Statement)及一些必要的符号(如大括号等)组成,在此先说明何谓标识符。 标识符 标识符是一个字母序列,由大 |
链表的C语言实现之动态内存分配 |
| 一、为什么用动态内存分配 但我们未学习链表的时候,如果要存储数量比较多的同类型或同结构的数据的时候,总是使用一个数组。比如说我们要存储一个班级学生的某科分数,总是定义一个float型(存在0.5分)数组:float score[30]; 但是,在使用数组的时候,总有一个问题困扰着我们:数组应该有多大? 在很多的情况下,你并不能确 |
链表的C语言实现之单链表的查找运算 |
| 建立了一个单链表之后,如果要进行一些如插入、删除等操作该怎么办?所以还须掌握一些单链表的基本算法,来实现这些操作。单链表的基本运算包括:查找、插入和删除。下面我们就一一介绍这三种基本运算的算法,并结合我们建立单链表的例子写出相应的程序。 1、查找 对单链表进行查找的思路为:对单链表的结点依次扫描,检测其数据域是否是我们所要查好的值,若是返回该结点的指针,否则返回NULL。 |
论C/C++函数间动态内存的传递 |
| 大连华信二系/徐兆元FLxyzsby@163.com/xuzy@dhc.com.cn 当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道.这些往往会使人受尽折磨.所以如果你想深入C/C++编程,你必须静下心来,好好苦一番. |
微软ping程序源代码完整版(附详细的注释) |
| 作者:侯志江 单位:天津大学软件学院 E-mail :tjuhzjemail@yahoo.com.cn 日期:2005年1月1日 |
C/C++中的日期和时间 |
| 撰文/周翔摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字 |
lzw压缩算法的c语言实现 |
| 1 程序由五个模块组成。(1) lzw.h 定义了一些基本的数据结构,常量,还有变量的初始化等。#ifndef __LZW_H__#define __LZW_H__//------------------- |
用C++实现简单的文件I/O操作 |
| 文件 I/O 在C++中比烤蛋糕简单多了。 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的。 一、ASCII 输出 为了使用下面的方法, 你必须包含头文件<fstream.h>(译者注:在标准C++中,已经使用<fstream>取代 |
[第二轮 1000分]RecurringNumbers |
|
Google™ Code Jam - 中国编程挑战赛
Problem Statement
|
[第二轮 500分]SecretSum |
|
Google™ Code Jam - 中国编程挑战赛
Problem Statement
|
[第二轮 300分]FactorialSystem |
|
Google™ Code Jam - 中国编程挑战赛
Problem Statement
|
C++程序中导出Word文档的简易方法 |
| 如果您要在应用程序中处理Word文档,可以参考MSDN. Lori Turner. Automating Microsoft Office 97 and Office 2000,该文内容详细全面,但是要在C++程序中导出Word文档,按照文中的方法来处理是很麻烦的,特别是需要填写的参数太多,所以我们考虑生成正确的VB脚本,然后执行生成Word文档的操作,这个方法的优点在 |
用c写CGI 程序简要指南 |
| 一、CGI概述 CGI(Common Gateway Interface: 公用网关接口)规定了Web服务器调用其他可执行程序(CGI程 序)的接口协议标准。Web服务器通过调用CGI程序实现和Web浏览器的交互,也就是CGI程序接受Web浏览器发送给Web服务器的信息,进行处理,将响应结果再回送给Web服务器及Web浏览器。CG |
C++箴言:最小化文件之间的编译依赖 |
| 你进入到你的程序中,并对一个类的实现进行了细微的改变。提醒你一下,不是类的接口,只是实现,仅仅是 private 的东西。然后你重建(rebuild)这个程序,预计这个任务应该只花费几秒钟。毕竟只有一个类被改变。你在 Build 上点击或者键入 make(或者其它等价行为),接着你被惊呆了,继而被郁闷,就像你突然意识到整个世界都被重新编译和连接!当这样的事情发生的时候, |
C++箴言:理解inline化的介入和排除 |
| inline 函数——多么棒的主意啊!它们看起来像函数,它们产生的效果也像函数,它们在各方面都比宏好得太多太多,而你却可以在调用它们时不招致函数调用的成本。你还有什么更多的要求呢? 实际上你得到的可能比你想的更多,因为避免函数调用的成本只是故事的一部分。在典型情况下,编译器的优化是为了一段连续的没有函数调用的代码设计的,所以当 |
C程式中关于整数储存的说明 |
| write by polaris(lz0ace@hotmail.com)转载请注明作者 首先感谢玲对我的支持,在我最困难时是她帮助了我。声明一下,高手就不要看了,这篇文章只是随便写写,解决一些C编程新手的问题。废话少说先看程序:-------------- |
C++箴言:避免析构函数调用虚函数 |
| 如果你已经从另外一种语言如C#或者Java转向了C++,你会觉得,避免在类的构造函数或者析构函数中调用虚函数这一原则有点违背直觉。但是在C++中,违反这个原则会给你带来难以预料的后果和无尽的烦恼。 正文 我想以重复本文的主题开篇:不要在类的构造或者析构函数中调用虚函数,因为这种调用不 |
C++箴言:防止异常离开析构函数 |
| C++ 并不禁止从析构函数中引发异常,但是这确实妨碍了实践。至于有什么好的理由,考虑: class Widget { public: ... ~Widget() { ... } // assume this might emit an exception |
C++箴言:让=返回一个*this的引用 |
| 关于赋值的一件有意思的事情是你可以把它们穿成一串。 int x, y, z; x = y = z = 15; // chain of assignments 另一件有意思的事情是赋值是右结合的,所以,上面的赋值串可以解析成这样: x = (y = ( |
C++箴言:资源管理类的拷贝行为 |
| 在上一篇文章中介绍了作为资源管理类支柱的 Resource Acquisition Is Initialization (RAII) 原则,并描述了 auto_ptr 和 tr1::shared_ptr 在基于堆的资源上运用这一原则的表现。并非所有的资源都是基于堆的,然而,对于这样的资源,像 auto_ptr 和 tr1::shared_ptr 这样的智能指针通常就不像 |
C++箴言:只要可能就用const |
| 关键字 const 非常多才多艺。在类的外部,你可以将它用于全局常量或命名空间常量,就像那些在文件、函数或模块范围内被声明为 static 的对象。在类的内部,你可以将它用于 static 和 non-static 数据成员上。对于指针,你可以指定这个指针本身是 const,或者它所指向的数据是 const,或者两者都是,或者都不是。 |
C++箴言:视类设计为类型设计 |
| 在 C++ 中,就像其它面向对象编程语言,可以通过定义一个新的类来定义一个新的类型。作为一个 C++ 开发者,你的大量时间就这样花费在增大你的类型系统。这意味着你不仅仅是一个类的设计者,而且是一个类型的设计者。重载函数和运算符,控制内存分配和回收,定义对象的初始化和终结过程——这些全在你的掌控之中。因此你应该在类设计中倾注大量心血,接近语言设计者在语言内建类型的设计中所 |