
C++
文章平均质量分 71
一枕雪
这个作者很懒,什么都没留下…
展开
-
关于c++刷新缓冲区
#include #include //runtime_error在其中定义 using namespace std; int main(){ int ival; while(cin>> ival,!cin.eof()){ if (cin.bad()) throw runtime_erro转载 2013-07-10 19:02:36 · 660 阅读 · 0 评论 -
友元函数
1、为什么要引入友元函数:在实现类之间数据共享时,减少系统开销,提高效率 具体来说:为了使其他类的成员函数直接访问该类的私有变量 即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数 优点:能够提高效率,表达简单、清晰 缺点:友元函数破环了封装机制,尽量不使用成员函数,除非不得已的情况下才使用友元函数。转载 2013-12-08 20:00:54 · 456 阅读 · 0 评论 -
C++调试相关
一、编译时的错误捕捉经典的隐式类型转换问题:[cpp] view plaincopyprint?#include "stdafx.h" class Apple { }; class Banana { }; class Orage { public:转载 2013-12-08 21:01:28 · 934 阅读 · 0 评论 -
C++智能指针
转载请标明出处,原文地址:http://blog.youkuaiyun.com/hackbuteer1/article/details/7561235 智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对转载 2013-12-09 01:12:36 · 440 阅读 · 0 评论 -
C++拷贝构造函数和赋值操作符
转自http://blog.163.com/niwei_258/blog/static/10628488201011794623240/ 重点:包含动态分配成员的类 应提供拷贝构造函数,并重载"="赋值操作符。 以下讨论中将用到的例子: class CExample{public : CExample(){pBuffer=NUL转载 2013-12-09 21:53:36 · 450 阅读 · 0 评论 -
C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。转载 2013-12-09 21:49:07 · 550 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy和memcpy的区别转自:http://www.cnblogs.com/stoneJin/archive/2011/09/16/2179248.Cstrcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char转载 2013-12-09 22:01:10 · 427 阅读 · 0 评论 -
C++中内存分配、函数调用和返回值问题
C++编译器将计算机内存分为代码区和数据区,很显然,代码区就是存放程序代码,而数据区则是存放程序编译和执行过程出现的变量和常量。数据区又分为静态数据区、动态数据区,动态数据区包括堆区和栈区。以下是各个区的作用:(1)代码区:存放程序代码;(2)数据区 a.静态数据区: 在编译器进行编译的时候就为该变量分配的内存,存放在这个区的数据在程序全部执行结束后系统自动释放转载 2013-12-05 15:45:43 · 517 阅读 · 0 评论 -
sizeof 和 strlen
第一个例子char* ss = "0123456789";sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针sizeof(*ss) 结果 1 ===》*ss是第一个字符char ss[] = "0123456789";sizeof(ss) 结果 11 ===》ss是数组,计算到\0位置,因此是10+1sizeof(*ss) 结果 1 ===》*s转载 2013-12-05 14:28:44 · 555 阅读 · 0 评论 -
char *a 和char a[] 的区别(指针和数组的区别)
1.两者在含义上的区别。 数组对应着一块内存区域,而指针是指向一块内存区域。其地址和容量在生命期里不会改变,只有数组的内容可以改变;而指针却不同,它指向的内存区域的大小可以随时改变,当指针指向常量字符串时,它的内容是不可以被修改的,否则在运行时会报错。如:#includestdio.h>#includestdlib.h>#includestr转载 2013-12-05 14:57:08 · 521 阅读 · 0 评论 -
拷贝构造函数和赋值构造函数
我们都知道拷贝构造函数和赋值构造函数最大的不同在于: 拷贝构造是确确实实构造一个新的对象,并给新对象的私有成员赋上参数对象的私有成员的值,新构造的对象和参数对象地址是不一样的,所以如果该类中有一个私有成员是指向堆中某一块内存,如果仅仅对该私有成员进行浅拷贝,那么会出现多个指针指向堆中同一块内存,这是会出现问题,如果那块内存被释放了,就会出现其他指针指向一块被释放的内存,出现未定义的转载 2013-12-08 19:10:42 · 534 阅读 · 0 评论 -
指针函数与函数指针
1.指针函数先看下面的函数声明,注意,此函数有返回值,返回值为int *,即返回值是指针类型的。[cpp] view plaincopyint *f(int a, int b); 上面的函数声明又可以写成如下形式:int* f(int a, int b);让指针标志 * 与int紧贴在一起,而与函数名f间转载 2013-12-08 18:24:53 · 579 阅读 · 0 评论 -
(1)Windows程序内部运行机制
1,windows程序设计是种事件驱动方式的程序设计,主要基于消息的。当用户需要完成某种功能时,需要调用OS某种支持,然后OS将用户的需要包装成消息,并投入到消息队列中,最后应用程序从消息队列中取走消息并进行响应。2,消息结构:typedef struct tagMSG { // msg HWND hwnd; //接收消息的窗口句柄。和哪个窗口相关联。转载 2013-07-17 17:21:40 · 431 阅读 · 0 评论 -
Visual C++ 入门,错误记录
出现"eh.h is only for C++!"错误的解决方法注意: vc在处理.c 文件是按 C 语言编译的,所以假如有以下文件: 1.c#include int main(int argc, char* argv[]){return 0;}那么编译时就会出错:fatal error C1189: #error : "eh.h is only for C++原创 2013-07-08 17:15:36 · 1087 阅读 · 0 评论 -
编写一个函数模板,接受表示未知类型迭代器的一对值,找出在序列中出现得最频繁的值
#include #include #include #include using namespace std; template typename T mosFre(T first,T last) { sort(first,last); size_t maxOccu = 0,occu = 0; T preIter = first原创 2013-09-09 09:27:38 · 699 阅读 · 0 评论 -
c++字符数组
字符数组:一、用字符数组来存储字符串:char st1[100],st2[100] ; //字符数组说明cin>>st1>>st2;long a,b;输入:hello, world则st1={‘h’,’e’,’l’,’l’,’o’,’,’,’\0’}st2={‘w’,’o’,’r’,’l’,’d’,’\0}字符’\0’为字符串结束标志1. 字符数组长度转载 2013-11-03 22:03:16 · 926 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy和memcpy的区别strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需转载 2013-11-04 00:49:45 · 523 阅读 · 0 评论 -
C++字符串string类型
字符串的创建方法string s1("how are you");string s2(s1,1,2) //源字符串,偏移量,计数量 owstring s3="fine";string s4=s1+"fine";//右边第一项必须为stringstring s5(s1.begin()+1,s1.begin()+3); 用迭代器字符串的其他操作插入 s.insert(0,"原创 2013-11-03 19:05:06 · 737 阅读 · 0 评论 -
c++函数对象
#include函数对象是重载了operator()的类的一个实例按参数个数分为发生器(0个参数)一元函数、二元函数一元函数派生于unary_function;二元函数派生于binary_function系统函数对象算数类plus,minus,multiples,divides,modules(取模),negate(否定)equal_to,not_equal_to,gr原创 2013-11-03 19:26:27 · 765 阅读 · 0 评论 -
getline读入char[]中
#include #include using namespace std; int main() { string line; while(getline(cin,line,' ')) { cout<<line<<endl; } } 例子二:#includeusing namespace std;int main(){ char buf[100];转载 2013-11-03 22:15:34 · 802 阅读 · 0 评论 -
生成随机数函数rand用法简介
函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 srand()会导致相同的随机数序列被生成。 srand((unsigned)time(NULL))则使用系统定时/计数器的值做为随机种子。每个种子对应一组根据转载 2013-12-08 18:32:02 · 768 阅读 · 0 评论 -
C++中指针和引用的区别
1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。而下面转载 2013-12-05 15:23:04 · 686 阅读 · 0 评论