自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

转载 友元函数

问题的提出  我们已知道类具备封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程式的运行效率。  为了解决上述问题,提出一种

2013-07-04 09:34:31 642

转载 enum in c++ 2

参考文献:[1]C++程序设计语言(特别版), 裘宗燕译, 机械工业出版社[2]C++ Primer (3rd Ed.), S.B. Lippman and J. Lajoie, 人民邮电出版社1、枚举enum的用途浅例      写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成绩分A,B,C,D等,天气分sunny, cloudy, rain

2013-07-02 17:52:21 446

转载 enum in C++

很多初学者对枚举(enum)感到迷惑,或者认为没什么用,其实枚举(enum)是个很有用的数据类型。枚举类型的使用方法一般的定义方式如下:enum enum_type_name{ENUM_CONST_1,ENUM_CONST_2,...ENUM_CONST_n} enum_variable_name;注意:enum_type_name 是自定义的一种数据数

2013-07-02 17:34:18 647

转载 switch case是否需要加括号

switch(lParam) { case WM_LBUTTONUP:    AfxMessageBox(_T("ok!"));    this->ShowWindow(SW_SHOW);    break; case WM_RBUTTONUP:  {     LPPOINT lpoint=new tagPOINT;      ::GetCursorPos(lp

2013-06-25 13:39:53 5060

转载 (int &)问题

#include  using namespace std;  int main(int argc, char* argv[]) {         float a = 1.0f;         cout     cout     cout     cout          cout     float b=0.0f;        cout

2013-06-14 15:24:27 426

转载 c++虚函数表解析

对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一

2013-06-14 14:06:00 441

原创 C++ 多态(polymorphism)的例子

关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。class ClxBase{public:    ClxBase() {};    virtual ~ClxBase() {};     virtual void DoSomething() { cout }; class ClxDerived : publ

2013-06-14 13:34:58 1129

原创 little endian & big endian

检查CPU是否为大端或小端一般而言普遍的方法是利用联合体存储数据的顺序,如int checkCPU(){  union w  {    int a;    char b;  }c;  c.a = 1;  return (c.b == 1);  // 小端返回TRUE,大端返回FALSE}linux源代码static union

2013-06-08 17:16:09 408

转载 与“零值”的比较

1,BOOL与零值的比较if( flag )if( !flag )2,float与零值的比较const float EPS = 0.00001;if ((x >= - EPS) && (x 3, char与零值的比较if (p == NULL)if (p != NULL)

2013-06-05 17:00:09 462

转载 类string的构造函数、析构函数和赋值函数

class String{  public:    String(const char *str = NULL);           //普通构造函数    String(const String &other);              //拷贝构造函数    ~ String(void);                           //析构函数    St

2013-06-05 16:50:05 499

原创 双链表操作 written by my self

struct student{      int data;      struct student *next;      struct student *pre;}dnode;1, 删除节点dnode *del(dnode *head, int num){      dnode *p1;      p1=head;      while(

2013-06-04 23:47:23 432

原创 单链表操作 written by myself

struct student{    int num;    struct student *next;}node;1, 建立单链表node * create(){    node * head, *p, *s;    int x;    bool flag = TRUE;    p = head = NULL;    while

2013-06-04 22:21:00 456

转载 some C++ summary 2

1. 纯虚函数如何定义?使用时应注意什么?抽象类是如何定义的?抽象类能否实例化?virtual void f()=0;是接口,子类必须要实现如果一个类含有至少一个纯虚函数,这个类称为抽象类(abstract class).抽象类不能实例化2.数组和链表的区别数组:数据顺序存储,固定大小链表:数据可以随机存储,大小可动态改变3. 已知一

2013-06-04 15:39:26 537

原创 some C++ summary

1, 头文件(包括.h和.hpp)里面有   #ifndef __SOMEFILE_H__      #define __SOMEFILE_H__   ... ... //声明,定义   #endif加入这些是防止头文件被重复include. 需要注意的是宏(__SOMEFILE_H__)在每个头文件里面要不同,所以一般而言是大写的文件名当该头文件多次被包含的时候,第一次#

2013-06-03 16:08:48 550

转载 memset()的效率以及源码分析

void *memset(void *s, int ch, size_t n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作。不知道有没有像我一样把memset当作万能的初始化工具,例如:int arr[n];memset(arr,1,n*sizeof(int));这样得到的a

2013-05-28 12:32:25 458

原创 四种强制转换方式

1 reinterpret_cast'reinterpret_cast'转换一个指针为其它类型的指针。它也允许从一个指针转换为整数类型。反之亦然。(译注:是指针具体的地址值作为整数值?)这个操作符能够在非相关的类型之间转换。操作结果只是简单的从一个指针到别的指针的值的二进制拷贝。在类型之间指向的内容不做任何类型的检查和转换。如果情况是从一个指针到整型的拷贝,内容的解释是系统相关的,所以

2013-05-28 12:30:21 775

原创 要处理

一、关于指针的思考指针的基本概念:int a[100];  int *p;  p=a;  以上代码有一些基本的等价,需要铭记。p等价于&a[0]等价于a*p等价于a[0]等价于*a*(p+1)等价于p[1]等价于a[1]等价于*(a+1)但是,如果对数组名取址呢?int a[]={1,2,3};

2013-05-28 12:29:38 542

原创 初始化列表

1)基本概念,初始化列表的形式#include using namespace std; class MemberInitializationList{private:        int i;        int j;public:        MemberInitializationList(int val) :j(val), i(j)

2013-05-28 12:28:26 464

原创 delete []m_data

String::~String(void){  delete [ ] m_data;  // 由于m_data 是内部数据类型,也可以写成 delete m_data;}这是为了与前面的new相对应如果前面的new格式为char * a=new char[12];(注意,有[])则后面delete就要有[];如果前面new没有[],则后面delete也不需要

2013-05-28 12:27:37 1054

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除