
C/C++
Red__King
太多要说的,不够用
展开
-
printf输出格式
printf输出格式1 一般格式printf(格式控制,输出表列) 例如:printf("i=%d,ch=%c/n",i,ch);说明:(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息: ①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。 ②普通字原创 2012-12-02 17:47:00 · 811 阅读 · 0 评论 -
C++类型转换详解--const_cast
一. 函数描述:const_cast ( expression )主要是用来去掉const属性,当然也可以加上const属性。主要是用前者,后者很少用。去掉const属性:const_case (&num),常用,因为不能把一个const变量直接赋给一个非const变量,必须要转换。加上const属性:const int* k = const_case(j),一般很少用,转载 2013-09-05 13:36:07 · 540 阅读 · 0 评论 -
STL中mem_fun和mem_fun_ref的用法
怎么对容器中的所有对象都进行同一个操作?我们可能首先想到的是用循环来实现。 比如有如下的一个类:class ClxECS{public: int DoSomething() { // 这里以输出一句话来代替具体的操作 cout "Output from method DoSomething!" endl;转载 2013-09-16 13:06:44 · 520 阅读 · 0 评论 -
C++函数模板及应用
参数化程序设计——通用的代码就必须不受数据类型的限制,可以把数据类型改为一个设计参数。这种类型的程序设计称为参数化(parameterize) 程序设计。这种设计由模板(template)完成。包括函数模板(function template)和类模板(class template)。本节主要讲解函数模板及其应用,类模板请点击这里:C++类模板与线性表什么是函数模板看个例子转载 2013-09-16 15:19:04 · 701 阅读 · 0 评论 -
C++中巧用#define访问类的私有成员
我们知道,类的私有成员在类的外部是不能被访问的。 例如有下面的这个简单的类:class ClxECS{private: int iPrivate;}; 那么下面的这个函数是不能通过编译的:void ECS_test(){ ClxECS lx; lx.iPrivate = 13; cout lx.转载 2013-09-16 23:11:34 · 615 阅读 · 0 评论 -
用枚举定义有意义的数组下标
在开发中,经常会用到一些数组,它里面存放一定数量(已知,不是太多)的特定元素。在使用数字表示的数组下标访问数组中元素的时候,根本不知道该元素是否是需要的那个元素,而且使代码可读性降低,甚至还会出现下标越界的危险。 比如,现在有如下的继承体系:class CShape;class CSquare : public CShape;class CRectangle :转载 2013-09-16 23:13:05 · 537 阅读 · 0 评论 -
C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout "Do转载 2013-09-16 23:16:43 · 470 阅读 · 0 评论 -
vector -- STL中容器的常用函数
STL:标准模板库,是很多聪明人的杰作总结所成,会用即可vector:Constructors 构造函数Operators 对vector进行赋值或比较assign() 对Vector中的元素赋值at() 返回指定位置的元素back() 返回最末一个元素begin() 返回第一个元素的迭代器capacity() 返回vector所能容纳的元素数量(在转载 2013-09-23 16:22:02 · 587 阅读 · 0 评论 -
详解 C++ virtual 析构函数
第一种情况:基类指针指向派生类对象。#include using namespace std; class Base{ public: ~Base() {cout<<"~B"<<endl;}}; class Derived:public Base{ public: ~Derived() {cout<<"~D"<<endl;}}; int mai转载 2013-09-26 16:00:44 · 395 阅读 · 0 评论 -
C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。转载 2013-09-05 11:59:35 · 386 阅读 · 0 评论 -
vector C++ 详细用法
vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。 为了可以使用vector,必须在你的头文件中包含下面的代码: #include vector属于std命名原创 2013-09-02 11:49:58 · 460 阅读 · 0 评论 -
va_start、va_end、va_list的使用
va_start、va_end、va_list的使用1:当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表void foo(...);void foo(parm_list,...);2:函数参数的传递原理函数参数是以数据结构:栈的形式存取,从右至左入栈.eg:#include void fun(int a, ...){int *te转载 2012-12-25 22:32:34 · 443 阅读 · 0 评论 -
#、##和__VA_ARGS__
转自:http://www.cnblogs.com/zhujudah/admin/EditPosts.aspx?opt=11.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing).#incl转载 2012-12-25 22:46:01 · 338 阅读 · 0 评论 -
C语言中的回调函数
回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。回调函数使用是必要的,在我们想通过一个统一接口实现不同 的内 容,这时用回掉函数非常合适。比如,我们为几个不同的设备分别写了不同的显示函数:void TVshow(); void ComputerShow(); void NoteBookShow()...等等。这是我们想用一个统一的显示函数,我们这时就可以用回掉函原创 2012-12-13 23:14:35 · 342 阅读 · 0 评论 -
C++内存管理
[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权转载 2013-02-21 13:56:17 · 377 阅读 · 0 评论 -
srand()以及rand()函数用法(zz)
srand()就是给rand()提供种子seed如果srand每次输入的数值是一样的,那么每次运行产生的随机数也是一样的,srand(n)for(10)rand()也就是说,以一个固定的数值作为种子是一个缺点。 通常的做法是 以这样一句代码srand((unsigned) time(NULL));来取代,这样将使得种子为一个不固定的数, 这样产生的随机数就转载 2013-03-13 12:28:52 · 445 阅读 · 0 评论 -
QML与C++混合编程使用
请尊重原创作品和译文。转载请保持文章完整性,并以超链接形式注明原始作者地址http://blog.youkuaiyun.com/changsheng230,方便其他朋友提问和指正。 本文适合于对Qt/Quick有基本了解的读者。首先回答一个比较常会被问到的问题: 什么是QML,它与Quick的关系是什么?Qt Quick是Qt User Interface Creation Kit的转载 2013-04-03 17:47:24 · 630 阅读 · 0 评论 -
C++笔记(1)explicit构造函数
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”); 但是有转载 2013-04-03 17:44:42 · 398 阅读 · 0 评论 -
HTTP 断点续传
所谓断点续传,也就是要从文件已经下载的地方开始继续下载。在以前版本的 HTTP 协议是不支持断点的,HTTP/1.1 开始就支持了。一般断点下载时才用到 Range 和 Content-Range 实体头。 Range 用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式: Range:(unit=first byte pos)-[last byte p转载 2013-05-05 21:44:26 · 523 阅读 · 0 评论 -
函数返回值问题
程序1: [cpp] view plaincopy#include char *returnStr() { char *p="hello world!"; return p; } int main() { char *str; str=returnSt转载 2013-09-26 16:13:31 · 547 阅读 · 0 评论