Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95314
  • 博文数量: 46
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 505
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-22 19:56
文章分类
文章存档

2008年(46)

我的朋友

分类: C/C++

2008-05-05 19:26:28

两个礼拜后进行一个C++的面试,这段时间会好好看看C++的。
C++中的类是基本的一个概念了,也是面向对象设计的关键概念了。
public class classname; 类的声明,这时类的大小还不知道。
public class classname{} ; 类定义,这时候已经知道了类的大小。
在类体中通过public,protected,private(被称为访问限定符)进行信息隐藏。
public里面的数据可以被所有其他的函数访问,private里的数据只可以被成员函数和友员函数访问,protected里的数据可以被成员函数,友员函数和自己的子类访问。
数据成员:
数据成员中可以有指向自身的指针或者引用,但是不能有指向自己的对象。
数据成员可以有static ,要在类外初始化,但是有一个特例,static const int 对象可以在类体中用常量初始化。 
数据成员可以有const,要在构造函数初始化。
数据成员每个类对象都有各自的一份,是不相同的。
 静态数据成员:属于整个类,只有一份拷贝
成员函数:
类的成员函数是对该类的所有对象共享的,在内存中只有一份。同一个成员函数通过this指针可以使用不同对象的数据成员,成员函数中的第一个参数是this,只是被省略了。
成员函数中行数比较少的,没有递归的函数会被编译器优化为inline,即是你没有将其定义为inline。
但是比较复杂的,有递归的函数就算你定义为inline,也会被编译器优化为非inline。
inline函数的定义最好在类体内,当然也可以在类体外定义,但是必须该函数的定义必须在类定义的头文件中。
成员函数可以定义在类里面的任何地方。当定义在public里,表示提供类的接口,当定义在private里,表示该函数期的作用是向类的接口提供帮助。
有一组成员函数可以管理类对象并处理诸如初始化,赋值,内存管理,类型转换以及析构等活动,这些函数往往由编译器隐式调用。这组函数是构造函数和析构函数。
成员函数可以是const型的,例如. int CLASS::getvalue () const {return this->a; }
const成员函数表示该函数不能修改调用该函数的类对象的数据成员。不过这里注意指针,他只能保证不修改指针对内存的指向,不能保证不修改指针指向的内存的值。const成员函数既可已被类对象调用,也可以被const类对象调用,而const类对象只能调用const成员函数。
 静态成员函数里智能访问静态数据成员,不能有this指针。
 
指向类的成员函数的指针不是普通的函数指针,因为该指针指向的不是普通的函数,例如:
int (CLASS:: * name)(int)=&CLASS::function;name为一个指向类CLASS的function函数的指针。调用该指针要通过对象。CLASS a; int b=(a.name)(1).
指向类的静态成员函数的指针就不需要这样,因为类的静态成员函数就相当于普通函数。
类里面定义的类叫做嵌套类,函数里面定义的类叫做内部类,这几个知识点不重要。
 
 
 
阅读(639) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~