
C++
candyliuxj
这个作者很懒,什么都没留下…
展开
-
C++代码规范之命名
一、命名的两个基本原则 1、含义清晰,不易混淆;2、不和其它模块、系统API的命名空间相冲突。 二、命名通则1、在所有命名中,都应使用标准的英文单词或缩写;不得使用拼音或拼音缩写,除非该名字描述的是文 特有的内容(如半角、全角、声母、韵母等);除非必要,不要用数字或较奇怪的字符来定义标识符。2、所有命名都应遵循达意原则,即名称应含义清晰、明确。原创 2009-08-04 22:19:00 · 2877 阅读 · 0 评论 -
C/C++中随机函数rand()和srand()的用法
一、rand() 函数名: rand 功 能: 随机数发生器 用法:int rand(void); 所在头文件: stdlib.h 函数说明 : rand()的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定 的范围里可看成是随机的。原创 2009-07-31 11:14:00 · 185270 阅读 · 15 评论 -
类型转换
一、系统预定义类型间的转换 1. 隐式类型转换 在赋值表达式 A=B 的情况下,赋值运算符右端B的值需转换为A类型后进行赋值; 当char或short类型变量与int类型变量进行运算时,将char或short类型转换成int类型; 当两个操作对象类型不一致时,在算术运算前,级别低原创 2009-09-20 19:41:00 · 1144 阅读 · 0 评论 -
C++ sizeof的使用总结
说明:以下代码在VS2008中通过,在32位操作系统下。1. 定义sizeof是一个操作符(operator)。其作用是返回一个对象或类型所占的内存字节数。其返回值类型为size_t。(size_t在头文件stddef.h中定义,它依赖于编译系统的值,原创 2011-04-07 19:48:00 · 65012 阅读 · 6 评论 -
C++文件顺序读取,最后一个字符被读取两遍的原因
今天遇到了一个关于文件读写的问题,觉得很奇怪。我将问题简化了下,写了个小程序,源代码如下:#include #include using namespace std;#include int main(){ ifstream fin; //新建原创 2011-03-18 16:49:00 · 7541 阅读 · 3 评论 -
C++库常用函数一览
本文中提到的函数库有: 1.标准C++库字符串类std::string的用法begin得到指向字符串开头的Iteratorend 得到指向字符串结尾的Iteratorrbegin得到指向反向字符转载 2011-04-10 10:58:00 · 27909 阅读 · 3 评论 -
Unicode下CString和char *之间的互相转换
CString中存储的字符的数据类型为wchar_t类型。一、CString转换为char *(1)方法一:使用wcstombs()#include using namespace std;#include int main(){ CString str原创 2011-09-21 10:35:50 · 24583 阅读 · 3 评论 -
VS2008中常用快捷键
一、命令行Devenv启动VS StudionIsqlw启动SQL2000查询分析器Sqlwb启动SQL2005企业管理器Inetmgr启动IIS管理器二、大纲Ctrl+M,O折叠所有大纲Ctrl+M,P停止大纲显示Ctrl+M,M隐藏或展开当前嵌套的原创 2011-10-26 09:19:16 · 1352 阅读 · 0 评论 -
派生类与继承
一、引入继承的目的 1. 代码重用 类的继承和派生机制,使程序员无需修改已有类,只需在已有类的基础上,通过增加少量代码或修改少量代码的方法得到新的类,从而较好地解决了代码重用的问题。2. 代码的扩充 只有在派生类中通过添加新的成员,加入新的功能,类的派生才有实际意义。二、派生类的声明格式(单继承)class 派生类名:继承方式 基类名 {原创 2009-09-26 21:33:00 · 8203 阅读 · 2 评论 -
C++全局变量的声明和定义
参考:http://wrchen.blog.sohu.com/71617539.html(1)编译单元(模块) 在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作:第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件;第二步,将工程中所有的obj文件进行LINK,生成最终.exe文件。 那么,错误可能在两个地方产原创 2012-08-11 09:58:23 · 185770 阅读 · 10 评论 -
关键字mutable
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词;在C++中,mutable是为了突破const的限制而设置的。 mutable只能用于修饰类的非静态数据成员。 被mutable修饰的变量,将永远处于可变的状态,也就是说此变量可在一个const函数中被修改。 当类的成员函数被声明为const原创 2009-09-01 20:39:00 · 969 阅读 · 0 评论 -
C++预处理命令
C++提供的预处理功能:宏定义、文件包含和条件编译;分别由宏定义命令、文件包含命令和条件编译命令三种预处理命令来实现。预处理命令格 式: #预处理命令 …… (末尾不加分号)作用域: 从定义点到程序结束说 明: 预处理命令独占一原创 2010-11-19 23:37:00 · 1181 阅读 · 0 评论 -
const修饰符和指针
const和指针一起使用有三种组合情况:指向常量的指针、常指针、和指向常量的常指针。 一、指向常量的指针 定义: const 数据类型 *指针变量名 含义: 一个指向常量的指针变量。 说明: 此指针可更改指向其他的常量,但此指针所指向的常量不能被更改。 例子: const原创 2009-09-01 21:12:00 · 1927 阅读 · 2 评论 -
类的友元
一、引入友元机制的原因 1. 在不放弃私有数据安全性的情况下,使得类外部的函数或类能够访问类中的私有成员,在c++中就用友元作为实现这个要求的辅助手 段。 2. 声明了一个类的友元函数,就可以用这个函数直接访问该类的私有数据,从而提高了程序运行的效率。(如果没有友元机制,外部函 数访问类的私有数据,必须通过调用公有的成员函原创 2009-09-05 21:38:00 · 2457 阅读 · 2 评论 -
类的静态成员
静态成员的特性: 不管这个类创建了多少个对象,而其静态成员只有一个拷贝(副本),这个拷贝被所有属于这个类的对象共享。 一、静态数据成员 定义格式: static 数据类型 静态数据成员名; 初始化格式: 数据类型 类名::静态数据成员名 = 初始化值; 公有静态数据成员的访原创 2009-09-04 21:45:00 · 5863 阅读 · 2 评论 -
类的常类型
一、常类型的引入 是为了既保证数据共享又防止数据被改动。 二、常数据成员 定义格式: const 数据类型 数据成员名; 说明: 1. 常数据成员只能通过构造函数用初始化列表进行初始化,而任何其他函数都不能对该成员赋值; 三、常成员函数 说明格式:原创 2009-09-08 10:54:00 · 1026 阅读 · 0 评论 -
运算符重载
一、运算符重载 定义格式: operator 运算符 (); 说明: 1. 运算符重载是通过创建运算符函数operator()来实现的; 2. 函数operator()可以是它将要操作的类的成员,也可以不是类的成员,但非成员operator()函数通常是类的友元函数;原创 2009-09-08 18:01:00 · 1260 阅读 · 0 评论 -
C++文件操作
一、C++中文件类型(1)文件一般是指放在外部介质上的数据的集合。(2)C++把文件看做是字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。(3)根据数据的组织形式,文件分为以下两类: 1)ASCII文件(文本文件):它的每个字节存放一原创 2011-09-14 17:36:18 · 2020 阅读 · 0 评论 -
strcat()连接两个字符串的问题分析
一、发现问题有三个小程序:(1)用两个指针变量指向字符串#include using namespace std;#include #include int main(){ char *p = "welcome ";原创 2011-09-18 10:26:59 · 19328 阅读 · 0 评论 -
C++函数指针详解
1.定义每一个函数都占用一段内存单元,它们有一个起始地址,指向函数入口地址的指针称为函数指针。2.语法指向函数的指针变量的一般定义形式为:数据类型 (*指针变量名)(参数表);3.说明1)函数指针的定义形式中的数据类型是指函原创 2011-04-21 18:26:00 · 32481 阅读 · 17 评论 -
C++中几个罕见却有用的预编译和宏定义
1、#error语法格式:#error token-sequence主要作用:在编译的时候输出编译错误信息token-sequence,方便程序员检查程序中出现的错误。实 例:#include "stdio.h"int main(int argc,原创 2010-11-19 22:58:00 · 1159 阅读 · 0 评论 -
socket编程
一、基于TCP的socket编程服务器端程序:1)创建套接字(socket)。此系统调用的实际效果是,请求操作系统把网络通信所需要的一些系统资源(存储器空间、CPU时间、网络宽带等)分配给该应用进程。2)将套接字绑定到一个本地地址和端口上(bind)。3)将套原创 2011-09-17 15:42:42 · 1461 阅读 · 0 评论