类的定义

***:类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。例如,我们使用关键字 class 定义 Box 数据类型

  • 1

定义成员函数

类定义是提供给更多不同用途的程序共享的,并不受单个程序应用的影响而“优化”。
特别的switch语句不允许使用。
类中的函数一般为内联函数,即使没有明确用inline标明。
在类之后定义成员函数

我们把类定义(头文件)看成是类的外部接口,类的成员函数定义看成是类的内部实现。
因为成员函数是所有对象共享的代码,不是某一个对象所独占的,所以不能在成员函数内使用某个特定的对象。

  • 2

**对象指针:**所谓对象指针,就是指向对象的指针

string A; //声明一个字符串对象
string *B=&A; //声明一个对象指针
B->append(“ABC”); //效果与 A.append(“ABC”)相同

【箭头操作符->可以访问该指针所指向的对象的成员数据或成员函数】

  • 3

this指针

一般情况下,成员函数除了接受实参之外,还会接受到对象的地址。
这个地址被一个隐含的形参this指针所获取,等同于执行this = &x;
所有对数据成员的访问都隐含地被加上前缀this->。
this指针是成员函数隐含指针形参,我们不能在成员函数的形参中添加this指针的参数定义,也不能在调用时
显示传递对象的地址给this指针。

  • 4

类的访问限定符

在访问数据成员时,可以用访问运算符 . 操作 ,私有的【Private】成员和受保护的【 Protected】成员不能使用直接成员访问运算符 . 来直接访问。

public(公有)
想要使用某个类,所要了解的全部内容就是它的公共成员。
private(私有)
一个类定义,如果不写访问控制说明符,那么它就默认为private。
外部无法访问私有成员,而起到保护作用。
protected(保护)
保护类的内部数据
保护成员对使用者来说是不可见的
对内部可见常用于继承

类的访问限定符体现了面向对象的封装性。

  • 5

成员函数的重载

和普通函数类似,在一个类中也可以有成员函数的重载,但是任意两个同名函数参数表中的参数个数、各参数的数据类型和顺序不能完全一样。

void set(int No,string Name); //设置学号姓名
void set(); // 重置学号姓名

  • 6

内联函数:

    如果想把一个函数定义为内联函数,则需要在函数名前面放置关键字 inline,在调用函数之前需要对函数进行定义。如果已定义的函数多于一行,编译器会忽略 inline 限定符。在类定义中的定义的函数都是内联函数,即使没有使用 inline 说明符。


    引入内联函数的目的是为了解决程序中函数调用的效率问题,程序在编译器编译的时候,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体进行替换,而对于其他的函数,都是在运行时候才被替代。这其实就是个空间代价换时间的节省。所以内联函数一般都是1-5行的小函数。在使用内联函数时要留神:

1.在内联函数内不允许使用循环语句和开关语句;
2.内联函数的定义必须出现在内联函数第一次调用之前;
3.类结构中所在的类说明内部定义的函数是内联函数

  • 7

作用域

局部域
全局域
类域
名字空间域
类的作用域

类的作用域是指类定义和相应的成员函数定义范围

每个类都定义了自己的作用域,类的成员(成员函数/成员变量)都在类的这个作用域内,成员函数内可任意访问成员变量和其它成员函数。
对象可以通过 . 直接访问公有成员,指向对象的指针通过 -> 也可以直接访问对象的公有成员。
在类体外定义成员,需要使用 :: 作用域解析符指明成员属于哪个类域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值