class

1、类(class)说明:
类是由结构体进化而来,除了关键字使用class外类和结构体还有以下区别:
a、class除了对成员变量管理外还新增了成员函数,在C语言中struct不可以有成员函数。
b、class新增了权限管理,在C语言中struct连public的关键字也不能识别。
c、class新增的友元是对成员变量的开辟一种特殊的权限。
d、class新增了静态成员变量,当然函数也有静态成员函数。struct对于静态和成员变量都支持。
以上区别是针对C编译器中的结构体的对比。实际上,类和结构体在C++编译器中几乎完全一样
。只有成员缺省权限不同,struct缺省是公有权限,class缺省是私有权限
2、类的声明和定义:
a)把类的成员函数的定义和声明分开,成员函数的定义在外部编写:
b)成员函数的声明,如同在C语言中把所有函数声明都写在上面当做函数目录使用。
c)C++常常把类的声明写在一个头文件.h中,把成员函数的定义写在。CPP中。
d)在VC编译器中,可以选择“New Class”的菜单新建类,自动会生产成一个.h和一个.cpp文件。
例如:
class CAdd  
{
public:
void Test(int a);
CAdd();
virtual ~CAdd();


};


3、静态成员变量:在公司里的C++程序设计禁止使用全局变量和全局函数,而改用(静态)类成员变量
a)普通的成员变量,每定义一个类对象该成员变量都跟对象一起申请新的空间。
b)即在内存中只有一份空间,静态数据成员的生存期为整个程序运行期。
c)在类内只是一个声明(无空间),静态数据成员必须在类体外进行定义和初始化。
d)静态成员变量在进入main函数之前已经执行了定义有了空间,而普通成员只有在对象定义时才有空间。
3、静态成员的定义和调用:
a)声明:在类内定义变量时前面加static.
b)定义:在类外定义相同的类型和变量名,前面加定义域(::),而且要去掉static关键字。
c)普通成员变量的调用必须通过类对象调用,以上方法对静态成员变量调用也适用。
d)静态成员变量的调用可以跟对象无关,直接适用类名访问,普通成员变量就不可以。
通常用 类名::静态成员名 的形式访问
4、静态成员函数:
a)普通成员函数中都有一个隐含的形参(this)
b)静态成员函数不含有this参数
c)普通成员函数在调用时必须要用对象调用
d)静态成员函数可以使用对象调用,也可以直接用类名调用。
e)静态成员函数中不可以调用其他普通成员,只能调用本类或者其他类的静态成员。
f)普通成员函数可以调用静态成员(变量和函数)。


注意:静态成员代替全局函数和全局变量来使用的结果是:所有的变量和函数都被归为一个类内。
5、友元(friend)函数:其他函数或者类也能够访问某个类内的非公有成员,给予特权访问。
a)全局函数开放:friend void Test(CTest* p);
b)对整个类所有成员函数开放:friend CAAA;
c)对类内的单个成员函数开发:void CAAA::Test();




面向对象的主要特性:
抽象(Abstraction) :把具体事务转换为代码组织的过程
封装(Encapsulation):封装和隐藏对外可以访问,内部代码组织隐藏起来。
如同电视和电脑对外只显示开关频道等按钮,内部主板和元器件是封装起来的。
继承(Inheritance):对代码复用起作用,继承父类的功能。
多态(Polymorphism):在特殊情况下使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值