类和对象1_程序设计B

第六章 类

1、类的定义

类是对具有相同属性和行为的一类客观事物的概括描述。是用户自定义的数据类型(程序设计语言角度)
类的定义包括行为和属性两个部分。
属性以数据表示,行为通过函数实现。
数据成员 属性
成员函数 行为

类定义的格式

class  类名{
   public:
           公有数据成员和成员函数;
   protected:
           保护数据成员和成员函数;
   private: 
           私有数据成员和成员函数;
};
	各成员函数的实现;

结束符要有,分号不能省略

类名第一个字母大写,加一个大写的C,见文望义

成员函数公有的
数据成员是私有的

注:

  • 类的数据成员可以是其他类的对象,但不能以类自身的对象作为本类的成员,而类自身的指针和引用可以作为类的成员。
    不存在嵌套定义
  • 类与结构体的区别:
    没有明确指定类成员的访问权限时,C++结构体的成员是公有的,而类的成员是私有的。

2、访问控制

public:
共有成员、类的外部接口
protected:
保护成员、仅允许本类数据成员及派生类成员函数访问
private:
私有成员、仅允许本类成员函数访问

3、成员函数

类的成员函数是实现类的行为属性的成员。
一般将成员函数声明为函数原型,在类外具体实现成员函数。

成员函数能够操作的数据:
1、本类的数据成员
2、函数内定义的局部变量(形参属于局部变量)
3、全局变量(不建议使用)

类的成员函数通过操作数据成员实现功能

成员函数的定义

返回值类型  类名::成员函数名(参数表)
{
          函数体
} 

成员函数首字母大写包含两个单词第二个大写

通过set/get函数对私有数据成员操作

4、对象
对象是类的实例或实体。
类与对象的关系,如同C++基本数据类型和该类型的变量之间的关系。

对象定义格式:

  • 类名 对象名1,对象名2,对象名3,…,对象名n;

类的具体化,必须在定义了类之后,才可以定义类的对象。

5、类成员的访问
对象成员的访问包括:

  • 圆点访问形式:对象名.公有成员
  • 指针访问形式:对象指针变量名->公有成员

如何通过类使用方法:

#include<iostream.h>
class  ptr_access  {
public:	                        
 void setvalue(float a, float b) { x=a; y=b; }
 float Getx() {return x;}
 float Gety() {return y;}
 void print() 
{
	 cout<<"x="<<x<<endl;
	 cout<<"y="<<y<<endl;
 }
private:                          //私有数据成员
	 float x,y;
};
int main()
{
	 float a1,a2;
	 ptr_access *ptr=new ptr_access;
     ptr->setvalue(2,8); //通过指针访问公有成员函数
	 ptr->print();
	 a1=(*ptr).Getx();     //通过公有成员函数访问私有数据成员
	 a2=(*ptr).Gety();
	 cout<<"a1="<<a1<<endl;
        cout<<"a2="<<a2<<endl;
        return 0;
}

在这里插入图片描述
成员函数
如果操作需要从外界引入数据加形参
只对数据成员操作不加形参

类定义和使用时应注意:

  1. 在类的定义中不能对数据成员进行初始化。
  2. 类的任何成员都必须指定访问属性,一般将数据成员定义为私有成员或保护成员,将成员函数定义为公有成员。
  3. 类中的数据成员可以是C++语法规定的任意数据类型。
  4. 类的成员可以是其他类的对象,称为类的组合。但不能以类自身的对象作为本类的成员。
  5. 类定义必须以分号“;”结束
  6. class与struct的不同:
    class中,成员缺省情况是private。
    struct中,成员缺省情况是public。

内联函数

内联函数作用: 减少频繁调用小子程序的运行的时间开销
内联函数机制: 编译器在编译时,将内联函数的调用以相应代码代替
内联函数声明: inline 函数原型
注:
内联函数仅在函数原型作一次声明。
适用于只有1 ~ 5行的小函数
不能含有复杂结构控制语句 ,不能递归调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值