CLASS(C++关键字)

生活百科 2023-01-25 19:31生活百科www.aizhengw.cn

CLASS(C++关键字)

在C++中,程式设计师用"类"来描述 "对象", 所谓的"对象"是指现实世界中的一切事物。那幺类就可以看做是对相似事物的抽象, 找到这些不同事物间的共同点, 如脚踏车和机车, 他们都属于"对象", 并且具有一定得相同点, 和一些不同点, 相同点如他们都有质量、都有两个轮子, 都是属于交通工具等。"都有质量"、"两个轮子"属于这个对象的属性, 而"都能够当做交通工具"属于该对象具有的行为, 也称方法。 类是属于用户自定义的数据类型, 并且该类型的数据具有一定的行为能力, 也就是类中说描述的方法。通常来说, 一个类的定义包含两部分的内容, 一是该类的属性, 另一部分是它所拥有的方法。以 "人类" 这个类来说, 每个人都有自己的姓名、年龄、出生日期、体重等, 为人类的属性部分, , 人能够吃饭、睡觉、行走、说话等属于人类所具有的行为。 上面举例中所描述的 "人" 类仅仅是具有人这种对象的最基础的一些属性和行为, 可以称之为人的"基类"。 再说说一些具有一些职业的人, 例如学生, 一个学生还具有"基类"中所没有的属性, 如学校、班级、学号; 也可以具有基类所不具有的行为, 如每天需要去上课, 需要考试等。 学生类可以看做是基类的一个扩展, 因为他具有基类的所有属性和行为, 并且在此基础上增加了一些基类所没有的属性和行为, 像"学生"这样的类称为"人类"这个基类的"派生类"或者"子类"。在学生的基础上还可以进一步的扩展出其他更高级的类, 如"研究生"类。

基本介绍

  • 中文名
  • 外文名class
  • 类型关键字
  • 标準ISO/ANSI C++11
  • 公共类定义public
  • 友元定义friend
  • 私有类定义private
  • 重载运算符operator
  • 继承类定义protected
  • 作用域随类型和定义位置而定

使用class

定义
为了儘量减少全局变数的使用并提供用户自定义类型的功能,C++语言提供了一种新的语言机制---类(class),并以类作为构造程式的基本单位。
C++中使用关键字class来定义类, 其基本形式如下
class 类名{        public:                        //公共的行为或属性             private:                        //私有的行为或属性};
①. 类名 需要遵循一般的命名规则;
②.publicprivate为属性/方法限制的关键字, private 表示该部分内容是私密的, 不能被外部所访问或调用, 只能被本类内部访问; 而 public 表示公开的属性和方法, 外界可以直接访问或者调用.类的属性成员都应设定为private, public只留给那些被外界用来调用的函式接口, 但这并非是强制规定, 可以根据需要进行调整;
③. 结束部分的分号不能省略。
在C++ 语言中class是定义类的关键字,C++中也可以使用struct定义类。两者区别是,用class定义的类,如果数据成员或成员函式没有说明则默认为private(私有)的,而用struct定义的,默认为public(公共)的。
示例:
定义一个点(Point)类, 具有以下属性和方法:
■ 属性: x坐标, y坐标
■ 方法: 1.设定x,y的坐标值; 2.输出坐标的信息。
实现代码如下:
class Point            {                public:                    void setPoint(int x, int y);                    void printPoint();                private:                    int xPos;                    int yPos;            };
类在定义时有以下几点需要注意:
①.类的数据成员中不能使用 auto、extern和register等进行修饰, 也不能在定义时进行初始化, 如
int xPos = 0;//错;
②.类定义时 private 和 public 关键字出现的顺序和次数可以是任意的;
③.结束时的分号不能省略, 切记!
使用
将一个类定义并实现后, 就可以用该类来创建对象了, 创建的过程如同 int、char 等基本数据类型声明一个变数一样简单, 例如我们有一个Point类, 要创建一个Point的对象只需要:
Point 对象名;

创建一个类的对象称为该类的实例化, 在创建时我们还可以对对象的属性进行相关的初始化, 这样在创建完成后该对象就已经具有了一定的属性。
将类进行实例化后系统才会根据该对象的实际需要分配一定的存储空间。这样就可以使用该对象来访问或调用该对象所能提供的属性或方法了。
通过对象名.公有函式名(参数列表);的形式就可以调用该类对象所具有的方法, 通过对象名.公有数据成员;的形式可以访问对象中的数据成员。

类对象的生存

作用域、可见域以及生存周期
类对象的作用域、可见域以及生存周期与普通变数的保持相同, 当对象生存周期结束时对象被自动撤销, 所占用的记忆体被回收, 需要注意的是, 如果对象的成员函式中有使用new(C++)或者malloc()(C)申请的动态记忆体程式不会对其进行释放, 需要我们手动进行清理, 否则会造成记忆体泄露。

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有