![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++语言探讨
skilledprogrammer
站在起跑线上,只要不断前进,生活就充满了新鲜感
展开
-
vc++中如何产生随机数
在VC++中我们经常需要用到随机数,提供的函数为rand(),它返回一个0至65535之间的随机数,若想产生0至MAX_NUM之间的随机数,可用rand()%MAX_NUM,即产生小于MAX_NUM的随机数看下面一个程序:#include #include void main(){ for(int i=0;i printf("%6d/n",rand()%10);}程序可成功运行,结原创 2008-03-31 21:15:00 · 9346 阅读 · 3 评论 -
字符串常量的神奇使用
最近在阅读《c和指针》这本书,对c语言的分析很不错,这是继《C++ primer》之后感觉又一部比较适合我阅读的书了,值得推荐,其中有些比较有趣的用法拿出来和大家分享。首先我们回忆关于字符数组和字符串常量的区别,比较下面两个语句:char p[] = “hello world原创 2011-09-06 16:26:49 · 1150 阅读 · 0 评论 -
c++异常处理的实现
我们编写的程序一般要满足正确性、健壮性、易读性和可复用性、可扩展性。健壮性指程序既能处理正确流程的情况,也能处理非法的错误的异常情况,提示用户出现了什么问题,一般由异常处理实现。在编写小型的程序时,可以很容易发现程序的错误,异常提示显得不那么重要,但在大型的由多人共同完成的程序中往往难以发现出现了什么问题,因此异常提示和处理显得尤为重要。下面我们了解c++的异常处理的实现。异常机制提供程原创 2011-06-26 23:04:00 · 1471 阅读 · 2 评论 -
c++primer学习笔记(三)
<br />1. 派生类中虚函数的声明必须和基类中的定义方式完全一致,但有一个例外,返回对基类的引用(或指针)的虚函数,派生类的虚函数可以返回基类虚函数返回类型的派生类的引用或指针。<br />虚函数也可以有默认实参,通常,如果有用在给定调用中的默认实参,该值将在编译时确定。如果一个调用省略了具有默认值的实参,则所用的值由调用该函数的类型定义,与对象的动态类型无关。通过基类的引用或指针调用虚函数时,默认实参为在基类虚函数声明中指定的值,如果通过派生类的引用或指针调用虚函数时,默认实参为在派生类的原创 2011-04-27 15:33:00 · 734 阅读 · 0 评论 -
c++primer学习笔记(二)
<br />1. 从const成员函数返回*this <br />在普通的非const成员函数中,this的类型是一个指向类类型的const指针,可以改变this所指向的值,但不能改变this所保存的地址。在const成员函数中,this的类型是一个指向const类类型的const指针,既不能改变this所指向的对象,也不能改变this所保存的地址。<br />基于const可以重载成员函数。<br />2. 可变数据成员使用mutable声明,可以在任何成员函数中改变(包括cons原创 2011-04-26 14:44:00 · 662 阅读 · 0 评论 -
c++语言之覆盖与隐藏
<br />我们知道派生类可以继承基类的成员变量和成员函数,如果在派生类定义同名的函数,即使参数不同,也会隐藏基类的继承来的函数。通过基类的引用或指针,可以实现函数的动态绑定,当然函数必须指定为虚函数。<br />下面摘自《c++高质量编程指南》对覆盖,隐藏的解释。<br />覆盖是指派生类函数覆盖基类函数,特征是:<br />(1) 不同的范围(分别位于派生类与基类);<br />(2) 函数名字相同;<br />(3) 参数相同;<br />(4) 基类函数必须有virtual关键字。<br />这里“原创 2011-05-29 18:39:00 · 933 阅读 · 2 评论 -
c++primer学习笔记
<br />1. 通过增加后缀L,U或UL,能强制将整型字面值转换为long,unsigned,unsigned long.<br />多字节字符串转宽字节字符串前加L,如”hello”->L”hello”<br />2.多行字符串的连接。<br />cout<<”a multiline”<br />“string”<br /><<endl;<br />多行字面值的连接<br />std::cou/<br />t<<”print”<<endl;<br />3.const可以替代define,避免原创 2011-04-02 16:35:00 · 773 阅读 · 0 评论 -
vc++中如何产生任意区间的随机数
<br />承接《vc++中如何产生随机数》,我们可以产生0~NUM之间的随机数,那么接下来考虑,如何产生负数随机数呢,如何产生任意一个区间的随机数呢?<br /> <br />#include<time.h><br />void GetRangeRandom(int min, int max, int n)<br />{<br /> //产生区间[min,max)的n个随机数<br /> srand(time(NULL));<br /> for (int i=0; i<n; i++)<b原创 2011-03-15 11:40:00 · 4446 阅读 · 0 评论 -
关于如何将char*转换成long型整数
<br />在计算机中,long型数占4个字节,每个字节中存储相应的二进制数据,我们做以下测试,就可看出高低位顺序及每个字节存储的内容,<br /> char a[5];<br /> long b = 1;<br /> memcpy(a, (char *)&b, 4 );<br />我在winxp下vs08做实验,得到long的高低位顺序为a[3],a[2],a[1],a[0],之后我们对于题目的问题就非常容易了。<br />例如将char* str中的字节转化成long i;可用如下代码:memcp原创 2011-02-28 15:20:00 · 10346 阅读 · 0 评论 -
c++资料
1.c++的xml编程 lib-xml2 http://www.blogjava.net/wxb_nudt/archive/2007/11/28/161340.html2.windows环境下unicode编程总结http://www.360doc.com/content/05/0712/00/73_1170.shtml3.unicode,ANSI,UTF-8的故事http://blog.csdn.net/pizi0475/archive/2010/03/29/5429014.aspx原创 2010-06-05 16:26:00 · 553 阅读 · 0 评论 -
不同类型的变量与0值比较的判断
在判断语句中,我们经常做变量是否等于0或不等0的条件判断,下面分别对布尔型、整型、实型和指针型四种类型的写法进行讨论1、布尔型#define TRUE 1#define FALSE 0bool flag;if(flag) //flag不等0if(!flag) //法拉杆等于0 2、整型 int a,b原创 2009-11-16 20:22:00 · 2481 阅读 · 0 评论 -
c++常见程序之字符串
1已知以下类的声明,请写出函数的实现。class String{public:String(const char *str = NULL); // 通用构造函数String(const String &another); // 拷贝构造函数~ String(); // 析构函数String & operater =(const String &rhs); // 赋值函数private:cha原创 2009-09-04 10:07:00 · 556 阅读 · 0 评论 -
windows下c++编写多线程
一.进程首先来看进程,它是一个正在运行的程序的实例,是一个程序在其自身的地址空间的一次执行活动。进程是资源申请、调度、和独立运行的基本单位。进程有两部分组成:1操作系统用来管理进程的内核对象,内核对象是系统用来存放关于进程的统计信息的地方,它是操作系统内部分配的一块内存块,该内存块是一种数据结构,其成员负责维护该对象的各种信息。2地址空间,它包含所有可执行模块、dll模块的代码和数据,原创 2011-12-06 11:41:26 · 34643 阅读 · 2 评论