c++读书笔记——类的定义

(一个字一个字敲键盘的!!!)

1、类定义的语法

类定义以关键字class开始,定义的语法如下:

class类名{

访问权限控制符:

//类成员的声明

};起来的部分是类定义体(body),其中主要包括访问权限说明符和类成员的声明,常用的访问权限说明符有public 、private和proteced,它们限定了对成员的访问权限。

2、访问控制权限

c++语言支持的类访问控制权限有public、protected、private共3个级别,这3个成员访问说明符用于控制对类成员的访问。

public权限是最高权限,具有该权限的成员可以在类作用域之外被访问。

private权限则是最低访问权限,具有该权限的成员只能在类作用域中被访问到。

protected权限大致介于public与private之间。

!!结构与类的唯一差别在于两者的默认访问权限不同:结构成员的默认访问权限是public,类的默认访问权限是private。

3、数据成员和成员函数

类能够把事物的属性及其行为封装在一起成为一个整体,其主要属性抽象为关键数据,且表示为类的数据成员。其典型行为抽象为关键操作,且表示为类的成员函数。

由于类的数据成员一般是类的关键数据,不允许随意访问并修改,因此需要把它们的访问权限设为private,而类的成员函数则是要提供一组服务或者接口,一般要把它们的访问权限设置为public。

4、作用域运算符

成员函数可以定义在类定义体内,也可以定义在类定义体外。当成员函数比较简单、实现代码较少时,可以定义在类定义体内,而复杂、代码较多的成员函数一般定义在类定义体外。在类定义体外定义成员函数时,需要指明其所属的空间(即类属关系),否则该函数会被认为是全局函数(与类毫无关系)而产生访问错误。说明成员函数的类属关系需要用到作用域运算符“::”。

5、成员函数的性质

成员函数是类的成员,在定义时需要显式地说明其类属关系,在调用时,一般由对象和圆点运算符调用。作为函数,成员函数也有普通函数的性质。

(1)连接性:定义在类定义体内的成员函数一般会被作为内联函数处理,定义在类定义体外的成员函数则具有外部连接性。

(2)重载:与普通函数一样,成员函数也可以被重载。

(3)默认参数值:与普通函数一样,成员函数也可以具有默认参数值。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-26 07:47:09

c++读书笔记——类的定义的相关文章

Javascript读书笔记:函数定义和函数调用

定义函数 使用function关键字来定义函数,分为两种形式: 声明式函数定义: function add(m,n) { alert(m+n); } 这种方式等同于构造一个Function类的实例的方式: var add = new Function("m", "n", "alert(m+n);"); Function类构造方法的最后一个参数为函数体:"alert(m+n);",前面的都是函数的形参,参数必须是字符串形式的:&

葵花宝典读书笔记-类

一,类的定义 类是一组相似事物的统称 "一组"  在于多个,单个事物无法成为一个类."人"可以是一个类,但"我"就不是一个类. "相似" 比较像,但不完全相同.奥巴马,克林顿都是人类,但他们并不是相同的一个人. "统称" 具有概括性.奥巴马.克林顿可以统称为人.男人.动物.总统.但不会统称为奥巴马,因为奥巴马是具体的一个人. 二,如何划分类 角度决定看法.如何划分类,要看所站的角度. 你.我.猪.鱼.松树

Effective Java2读书笔记-类和接口(五)

第21条:用函数对象表示策略 这一条其实也没说啥,就是策略模式.碰到这种场景时,定义一个策略接口,然后不同策略子类实现它,主类包含这个接口的引用就可以了. 第22条:优先考虑静态成员类 嵌套类是指被定义在另一个类的内部的类.嵌套类存在的目的应该只是为它的外围类提供服务.嵌套类包括四种:静态成员类.非静态成员类.匿名类和局部类.除了第一种之外,其他三种都被称为内部类. 听起来很绕,其实区分还是很简单的. 首先,如果没有放在方法内部,那就是成员类(根据具体情况决定要不要做成静态的).放在方法内部,那

Effective Java2读书笔记-类和接口(四)

第19条:接口只用于定义类型 这一条就举了一个反例,说有些接口中只包含常量.这是对接口的不良使用.要实现相同的功能,应该使用不可实例化的工具类(第4条说过). public class PhysicalConstants { private PhysicalConstants() { } // Prevents instantiation // Avogadro's number (1/mol) public static final double AVOGADROS_NUMBER = 6.02

effective java 读书笔记——类和接口

上周因为准备考试等一堆原因,没空看书,今天补上一点. 类和接口是java程序设计语言的核心,它们也是java语言的基本抽象单元,java语言提供了很多强大的基本元素,供程序员设计类和接口,这一章讲的是一些指导原则,可以设计出更加有用,健壮和灵活的类和接口. 第1条:使类和成员的可访问性最小化 首先说一个概念:模块之间只能通过它们的API进行通信,一个模块不需要知道其他模块的内部工作情况,这个概念叫做“信息隐藏”,或者“封装”.(对,这就是面向对象的中封装继承多态三大特性之一的封装) 信息隐藏之所

Effective Java2读书笔记-类和接口(二)

第15条:使可变性最小化 通过一个复数类来看不可变类. public final class Complex { private final double re; private final double im; private Complex(double re, double im) { this.re = re; this.im = im; } public static Complex valueOf(double re, double im) { return new Complex(

《C#图解教程》读书笔记之四:类和继承

本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.万物之宗:Object (1)除了特殊的Object类,其他所有类都是派生类,即使他们没有显示基类定义. (2)一个派生类只能有一个基类,叫做单继承. 二.基类那点事儿 (1)如何在派生类中访问基类成员?使用base关键字,如base.Field1: (2)如何屏蔽基类中某个方法或成员?在派生类定义的成员定义前使用new关键字: (3)如何使用基类的引用?这里可以借鉴里氏替换法则,创建指向派生类的基类对象. 三.小

Effective Java读书笔记(4 类和接口)

4.1 使类和成员的可访问性最小化 要区别设计良好的模块和设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节.设计良好的模块会隐藏所有的实现细节,把它的API与它的实现清晰的隔离开来,然后模块之间只通过API进行通信,一个模块不需要知道其他模块内部的工作情况,这个概念被称为信息隐藏或封装,是软件设计的基本原则之一. 4.2 在公有类中使用访问方法而非公有域 坚持面向对象程序设计思想:如果类可以在它所在的包的外部进行访问,就提供访问方法,以保留将来改

TJI读书笔记10-复用类

body, td { font-family: 微软雅黑; font-size: 10pt; } TJI读书笔记10-复用类 组合语法 继承语法 代理 final关键字 final的数据 final的参数 final的方法 final的类 初始化和类的加载 乱七八糟不知道怎么归类的知识点 代码复用是java众多牛逼哄哄的功能之一(好像OOP语言都可以呢-),代码复用的理想状态是,使用类但是又不破坏现有代码. 当然住了复制粘贴以外还有其他的方法. 一个叫组合,一个叫继承. 组合语法 其实刚开始我非