随笔分类 -  C++

基本数据类型 转载
摘要:基本类型学习小结环境: Dev-C++ 4.9.6.0 (gcc/mingw32), 使用-Wall编译选项基本类型包括字节型(char)、整型(int)和浮点型(float/double)。定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对于int、double)对变量的取值区间和精度进行说明。下面列举了Dev-C++下基本类型所占位数和取值范围:符号属性长度属性基本型所占位数取值范围输入符举例输出符举例----char8-2^7 ~ 2^7-1%c%c、%d、%usigned--char8-2^7 ~ 2^7-1% 阅读全文

posted @ 2012-01-06 12:20 kyleada 阅读(580) 评论(0) 推荐(0)

数组指针
摘要:设有“int w[3][4];”,pw是与数组名w等价的数组指针,则pw的初始化语句为??int (*pw)[4] = w;(3分二维数组和指针2007-09-12 19:455947人阅读评论(6)收藏举报二维数组和指针⑴ 用指针表示二维数组元素。要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一维数组了。而每个大数组元素对应二维数组的一行,我们就称之为行数组元素,显然每个行数组元素都是一个一维数组下面我们讨论指针和二维. 阅读全文

posted @ 2011-10-30 20:14 kyleada 阅读(309) 评论(0) 推荐(0)

float与double的范围和精度 转载
摘要:1 范围float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位)8bits(指数位)23bits(尾数位)double:1bit(符号位)11bits(指数位)52bits(尾数位)于是,float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。float的范围为-2^128 ~ +2^128,也即-3.40 阅读全文

posted @ 2011-10-19 21:18 kyleada 阅读(212) 评论(0) 推荐(0)

结构体 联合体内存对齐
摘要:#include "stdio.h"void main(){ int a=sizeof(unsigned long); int b=sizeof(short int); struct Student { unsigned long id; char name[30]; char calss[30]; }oStu1; for (int i=0;i<30;i++) { oStu1.name[i]=i; } for (i=0;i<30;i++) { oStu1.calss[i]=i; } printf(" %d",sizeof(oStu1));// 阅读全文

posted @ 2011-10-10 10:28 kyleada 阅读(532) 评论(0) 推荐(0)

typedef
摘要:typedef struct tagMyStruct{ int iNum; long lLength;} MyStruct;这语句实际上完成两个操作:1) 定义一个新的结构类型struct tagMyStruct{ int iNum; long lLength; };分析:tagMyStruct称为“tag”,即“标签”,实际上是一个临时名字,struct 关键字和tagMyStruct一起,构成了这个结构类型,不论是否有typedef,这个结构都存在。我们可以用struct tagMyStruct varName来定义变量,但要注意,使用tagMyStruct varName来定义变量是不对 阅读全文

posted @ 2011-08-11 20:43 kyleada 阅读(377) 评论(0) 推荐(0)

转载 二叉树的创建、遍历、深度、叶子节点数
摘要:1 # include <stdio.h> 2 # include <malloc.h> 3 typedef struct BiTNode{ 4 struct BiTNode *lchild; 5 struct BiTNode *rchild; 6 }treeNode, *tNode; 7 void createTree(int a[]) 8 { 9 } 10 /** 11 * 插入节点到二叉树中 12 */ 13 void insert(tNode root,int data) 14 { 15 tNode newNode = (tNode)malloc(sizeof( 阅读全文

posted @ 2011-08-11 20:36 kyleada 阅读(544) 评论(0) 推荐(0)

this指针和操作符重载
摘要:Sales_item.h(C++ primer 4)2009-01-01 15:20/** This file contains code from "C++ Primer, Fourth Edition", by Stanley B.* Lippman, Jose Lajoie, and Barbara E. Moo, and is covered under the* copyright and warranty notices given in that book:* * "Copyright (c) 2005 by Objectwrite, Inc., J 阅读全文

posted @ 2011-07-24 14:47 kyleada 阅读(1051) 评论(0) 推荐(0)

C++ 类访问控制(public/protected/private)
摘要:C++中 public,protected, private 访问标号小结第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。第二:类的继承后方法属性变化 阅读全文

posted @ 2011-07-20 21:46 kyleada 阅读(256) 评论(0) 推荐(0)

C++ primer
摘要:void swap(int& v1,int& v2);与所有引用一样,引用形参直接关联到其所绑定的对象,而并非这些对象的副本。定义引用时,必须与该引用绑定的对象初始化该引用。引用形参完全以相同的方式工作。每次调用函数,引用形参被创建并与实际的实参相关联。返回引用。当函数返回引用类型时,没有复制返回值。相反,返回的是对象本身。例如,下面的函数返回两个string类型形参中较短的那个字符串的引用。const string& shorterString(const string& s1,const string& s2){ return s1.size()&l 阅读全文

posted @ 2011-07-19 19:49 kyleada 阅读(209) 评论(0) 推荐(0)

atoi实现
摘要:atoi实现收藏1int atoi(const char *s){ char *p = s; char c; int i = 0; while(c=*p++) { if(c>='0' && c<='9') { i = i*10 + (c-'0'); } else return -1; //Invalid string } return i;}2#include <iostream>#include <string>#include <algorithm>using namespace 阅读全文

posted @ 2011-05-25 14:22 kyleada 阅读(10298) 评论(0) 推荐(0)

C++模版的特化
摘要:C++类模板的三种特化 By SmartPtr(http://www.cppblog.com/SmartPtr/) 说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型; 二是特化为引用,指针类型;三是特化为另外一个类模板。这里用一个简单的例子来说明这三种情况://generalversiontemplate<classT>classCompare{public:staticboolIsEqual(constT&lh,constT&rh){re 阅读全文

posted @ 2011-05-23 16:51 kyleada 阅读(7235) 评论(0) 推荐(0)

C++的内嵌类
摘要:c++内嵌类(2010-10-12 14:40:22)转载标签:嵌套内联名称空间外围c内嵌类杂谈分类: c/c++ 内嵌类有两种类型:内联(inner)类和静态内嵌(static nested)类。主要的区别:一、内联类可以访问定义在外围类(enclosing class)中的实例变量。静态内嵌类不可以。二、内联类是完全封装在外围类中的。而静态内嵌类可以被外部代码使用,只要不是private的。如静态内嵌类Entry用来遍历Map对象中的key-value对。在Map之外的代码上下文,需要用Map.Entry来引用这个类。因此,将内嵌类声明为静态的首要原因是,让其他类可以使用它。虽然可以将类声 阅读全文

posted @ 2011-05-19 16:46 kyleada 阅读(7576) 评论(0) 推荐(0)

虚函数的作用(转载
摘要:可以让成员函数操作一般化,用基类的指针指向不同的派生类的对象时, 基类指针调用其虚成员函数,则会调用其真正指向对象的成员函数, 而不是基类中定义的成员函数(只要派生类改写了该成员函数)。 若不是虚函数,则不管基类指针指向的哪个派生类对象,调用时都 会调用基类中定义的那个函数。程序1:#i nclude <iostream>using namecpace std;class B0//基类B0声明{ public:void display(){cout<<"B0::display()"<<endl;}//公有成员函数};class B1: p 阅读全文

posted @ 2011-05-19 16:03 kyleada 阅读(13524) 评论(1) 推荐(0)

Eclipse 编译C++
摘要:之前在官网上下载专门为C++开发的版本,但是按照实例新建后无法编译成功,提示 gcc*******后来常伟帮忙,认为是MinGW没安装好,只好下载了完整安装包(在线安装没法进行,貌似这里网速不行)http://blog.csdn.net/yuanyuankk/archive/2010/06/21/5684799.aspx。成功 阅读全文

posted @ 2011-02-22 20:43 kyleada 阅读(591) 评论(0) 推荐(0)

导航