随笔分类 -  学习——C/C++

摘要:转载:http://blog.csdn.net/weizhee/article/details/562833析构函数在下边3种情况时被调用:1.对象生命周期结束,被销毁时;2.delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类虚构函数是虚函数时;3.对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。情况1请看下边代码:#includeclass A{public:A(){coutclass A{public:A(){coutclass A{public:A(){cout<<"constructing A"<&l 阅读全文
posted @ 2013-11-13 17:29 E_star 阅读(537) 评论(0) 推荐(0) 编辑
摘要:▲setw(n)用法: 通俗地讲就是预设宽度如 cout#include //要用到格式控制符void main(){double amount = 22.0/7;cout <<amount <<endl;cout <<setprecision(0) <<amount <<endl<<setprecision(1) <<amount <<endl<<setprecision(2) <<amount <<endl<<setprecision(3) < 阅读全文
posted @ 2013-07-17 11:25 E_star 阅读(1466) 评论(0) 推荐(0) 编辑
摘要:// 接收数量不定的实参.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;int sum(int count , ... ) ;int _tmain(int argc, _TCHAR* argv[]){ cout << sum(5,4,6,8,10,12) <<endl; cout << sum(8,22,33,44,55,66,77,88,99) <<endl; return 0;}int sum( int coun 阅读全文
posted @ 2013-07-15 15:54 E_star 阅读(3894) 评论(0) 推荐(0) 编辑
摘要:C++中基类和派生类遵循类型兼容原则:即可用派生类的对象去初始化基类的对象,可用派生类的对象去初始化基类的引用,可用派生类对象的地址去初始化基类对象指针。C++中动态绑定条件发生需要满足2个条件:1:只有指定为虚函数的成员函数才能进行动态绑定,成员函数默认为非虚函数,非虚函数不能进行动态绑定2:必须通过基类类型的引用或指针进行函数调用基类类型引用和指针的关键点在于静态类型和动态类型可能不同:1:什么是静态类型?就我的理解来说,所谓的静态类型是指,当我们用上述引用或指针去调用非虚函数是,这时的引用和指针就是引种静态类型的,它对非虚函数的调用是在编译时就确定了2:从静态类型的对立来看,所谓的动态类 阅读全文
posted @ 2013-06-26 19:58 E_star 阅读(1305) 评论(0) 推荐(0) 编辑
摘要:一些成员函数改变对象,一些成员函数不改变对象。例如:int Point::GetY(){ return yVal;} 这个函数被调用时,不改变Point对象,而下面的函数改变Point对象:void Point:: SetPt (int x, int y){ xVal=x; yVal=y;} 为了使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明:class Point{ public: int GetX() const; int GetY() const; void SetPt (int, int); void OffsetPt (int, in... 阅读全文
posted @ 2013-05-04 21:48 E_star 阅读(382) 评论(0) 推荐(0) 编辑
摘要:作者:阮一峰日期:2012年5月31日我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。下面就是我的学习笔记。因为这些协议实在太复杂、太庞大,我想整理一个简洁的框架,帮助自己从总体上把握它们。为了保证简单易懂,我做了大量的简化,有些地方并 阅读全文
posted @ 2013-04-18 17:43 E_star 阅读(386) 评论(0) 推荐(0) 编辑
摘要:在内核中tcp协议栈有6种类型的定时器:1 重传定时器。2 delayed ack定时器3 零窗口探测定时器上面三种定时器都是作为tcp状态机的一部分来实现的。4 keep-alive 定时器主要是管理established状态的连接。5 time_wait定时器 阅读全文
posted @ 2013-04-18 08:43 E_star 阅读(434) 评论(0) 推荐(0) 编辑
摘要:现象&后果:当传入的参数p指向的内容为0x9A、0XAB等内容(最高位为1)时,得到的int型变量util的值将会出错,因为char会进行符号扩展,使得0x9A(十进制的154)变成了-102。会造成程序运行时的数据处理错误。分析:char符号扩展是与编译器相关的,但在x86平台上,对于任何主流的编译平台,char总是进行符号扩展的。上述代码在将char型的*p赋给int型变量util的时候,需要先进行char型到unsigned char型的转换,以避免按照char的最高位进行符号扩展。上述出错代码的符号扩展过程如下:因为要扩展的短数据类型为有符号数的-- char x=100111 阅读全文
posted @ 2013-04-16 16:29 E_star 阅读(1998) 评论(0) 推荐(0) 编辑
摘要:第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,// 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char *pa, *pb;也可行,但相对来说没有用typedef的形式直观,尤其在需要大量指针的地方,typedef的方式更省事。用途二:用在旧的C的代码中(具体多旧没有查),帮助struct。以前的代码中,声明struct新对象时 阅读全文
posted @ 2013-04-14 21:38 E_star 阅读(199) 评论(0) 推荐(0) 编辑
摘要:C语言以及C++语言中的const究竟表示什么?其具体的实现机制又是如何实现的呢?本文将对这两个问题进行一些分析,简单解释const的含义以及实现机制。 问题分析 简单的说const在C语言中表示只读的变量,而在C++语言中表示常量。关于const在C与C++语言中的使用以及更多的区别,以后有时间另开一贴说明。 那么const究竟是如何实现的呢? 对于声明为const的内置类型,例如int,short,long等等,编译器会如何实现const的本意?那么对于非内置类型是否也是与内置数据类型一样处理呢,例如对于结构体类型则会怎样处理呢?下面通过几个小例子来说明这些问题: C语言const... 阅读全文
posted @ 2013-04-13 23:16 E_star 阅读(265) 评论(0) 推荐(1) 编辑
摘要:int a = 2; printf("%d\n",sizeof(a)); int x; cin>>x; cout<<hex<<x<<endl; cout<<oct<<x<<endl; int y; scanf("%x%o",&x,&y); printf("%X, %o\n",x,x); return 0; 阅读全文
posted @ 2013-04-11 00:03 E_star 阅读(592) 评论(0) 推荐(0) 编辑
摘要:结构体中的成员可以是不同的数据类型,成员按照定义时的顺序依次存储在连续的内存空间。和数组不一样的是,结构体的大小不是所有成员大小简单的相加,需要考虑到系统在存储结构体变量时的地址对齐问题。看下面这样的一个结构体: struct stu1 { int i; char c; int j; }; 先介绍一个相关的概念——偏移量。偏移量指的是结构体变量中成员的地址和结构体变量地址的差。结构体大小等于最后一个成员的偏移量加上最后一个成员的大小。显然,结构体变量中第一个成员的地址就是结构体变量的首地址。因此,第一个成员i的偏移量为0。第二个成员c的偏移量是第一个成员的偏移量加上第一个成员的大... 阅读全文
posted @ 2013-04-09 09:48 E_star 阅读(5919) 评论(1) 推荐(1) 编辑
摘要:find返回完全匹配的字符串的的位置;find_first_of返回被查匹配字符串中某个字符的第一次出现位置。View Code int main(){ string s1 = "15674674"; string s2 = "79999"; string s3 = "76"; printf("%d\n",s1.find_first_of(s2));//返回被查匹配字符串中某个字符的第一次出现位置 printf("%d\n",s1.find(s2)); printf("%d\n&quo 阅读全文
posted @ 2013-03-26 16:50 E_star 阅读(2860) 评论(0) 推荐(0) 编辑
摘要:#include <time.h>#include <stdio.h>int main(){ long logTime; //定义时间类型变量 struct tm *timeinfo; //时间结构的指针 time(&logTime); //获取时间(以秒计,从1970年1月1日起算,存于logTime时间变量) timeinfo=localtime(&logTime); //转为当地时间,tm 时间结构 printf("%s\n",asctime(timeinfo));} 阅读全文
posted @ 2013-03-20 08:36 E_star 阅读(657) 评论(0) 推荐(0) 编辑
摘要:话说今天考了C语言的试,各种用文件读写神马的。哥都忘了神马文件读写了。于是前一小时各种想,不过这一小时做的最多是ctrl + alt + delete结束vc++6.0 尼玛我以无力吐槽这神马考试,大头机,vc编译两次就完蛋必须结束进程才能启动。这是考试吗,机房还一股臭脚丫子味,多少年不打扫了。这是练习ctrl + alt + delete命令吧。 哥实在没办法了全部用freopen写的,管他对不对的。哎....伤不起啊。回来还晕的我吐了,晕车的滋味要死啊。回来就看了看这些简单的函数,话说哥想对了,可是考试的时候怎么数据就是读不出来呢,无语。。。#include <stdio.h> 阅读全文
posted @ 2012-11-03 22:55 E_star 阅读(175) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>#include <map>#include <string>#include <cstdio>using namespace std;int main(){ map<int,string>mp; mp.insert(pair<int,string>(1,"GGGH")); mp.insert(map<int,string>::value_type(2,"FFF")); mp[3] = "UGUIHGUH"; pa 阅读全文
posted @ 2012-03-25 23:28 E_star 阅读(246) 评论(0) 推荐(0) 编辑
摘要:View Code #include <cstdio>#include <cstring>#include <iostream>#include <functional>#include <queue>using namespace std;int ar[13] = {14,10,56,7,83,22,36,91,3,47,72,0};struct cmp1{ bool operator ()(int &a,int &b) { return a > b;//以后面的b为准a》b所以小的先出来 }};struct 阅读全文
posted @ 2012-03-01 16:17 E_star 阅读(273) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示