扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
第八天:抽象数据类型是指用户自定义的数据类型。虽然用户使用内部类型来定义抽象数据类型但它不是内部数据类型。
"."点操作符是访问对象变量的成员
"->"指针操作符是访问指针指向的对象变量。
包含结构类型的的结构称嵌套结构类型。嵌套结构类型可以再次被嵌套,访问被嵌套的结构成员必须用两个点操作符。
通常把类数据声明为全局性的,把类变量声明为局部的。并把类声明放在头文件中用"#include"来包含它们。
在类声明后必须有分号。可以在声明类的同时声明类变量。如下:
class empData{
char empCode[8];
float wkSalary;
}emp1,emp2;
理论上说一切变量都是对象,但VC++的对象通常是指类变量。
对象是程序声明的某类变量,对对象的声明称做对某类实例化。
类的成员缺省是私有的。
局部(块作用域)全局(文件作用域)
类作用域:如果一个变量有类作用域,那么它只能在这个类中被使用。所以即使这个类变量是函数的局部变量,它的成员也未必都能被这个函数访问。
两个关键字:public 和 private可以改变class和struct的member的缺省状态。
关键字public\private\protected叫做访问说明符。其中public和private决定了是否能在外部访问类或结构的成员。
第九天:成员函数有时被称为方法,因为它提供了一种严格的访问私有数据的方法。
class ABC{
int a;//数据成员
float b;//数据成员
char c;//数据成员
};
属性描述类的初始状态,这个类的属性包括一个整数成员、一个浮点成员、一个字符成员,所有这些成员组成了ABC类的属性。
如果类中存在函数则称为成员函数(和成员数据一样成员函数也是类的成员)。成员函数便是此对象的行为。成员函数通常被设定为公有成员。(public)。
可以用点操作符调用类中的公有数据成员和成员函数。成员函数的基本目的就是控制程序的其他部分对私有数据的访问。通常私有数据和公有函数组成了一个完整的对数据提供保护的类。
file://用以上学到的概念作一个扑克牌发牌程序,和一个彩票随机出号程序。
main()函数不仅仅是一个程序的框架,还是一个高水平的组织管理系统,管理对象并且通过发送消息控制对象的行为(通过调用成员函数)。
注意:用户只有在类变量被定义后才能赋值。只定义了类是不会有内存空间分配给它,只有定义了类变量才行。这就是说不能在类定义中初始化类的成员。
一定要在成员函数中添加参数表(可以用缺省参数表),以便在以后的程序中向成员函数传递参数。
成员函数并不是只能从对象外部到内部的单向数据通道,只要在成员函数中设置一个返回值,就很容易使对象的成员函数返回一个值到main()中。
建议为每个数据成员编写只返回一个值的只读访问成员函数,以便main()或程序其他部分访问某个数据时使用。
只把成员函数的原型放在类中,让类成为一个头文件。(包含类的简要说明,数据成员和成员函数的原型)。把成员函数体放在类说明之后,但在main()之前。在实际的编程中把所有的类定义放在一个类的头文件中,在程序中用"#include"包含类代码。最好是提供类的头文件,但事先把所有的成员函数代码编译好,在程序中使用它们时连接目标代码。
把成员函数放在类定义之外时,不要忘记在函数名前冠以作用域说明符。在每个成员函数前必须冠以它所属的类名和作用域说明符。这样才能使它和它所属的类匹配。格式如下:
类名::函数名(参数表)
例:
void ABC::getVals(void)
技巧:可以使用内联函数提高类的工作效率。
通过成员函数提供数据保护这样类不会被赋错误的值。
封装是指把几个元素包含在一个外壳中。封装就是把数据成员和成员函数联编在一个类中,这样对象可以拥有属性和行为两方面内容。
*this指针被隐式的传递给所有成员函数,它指向引起这次函数调用的对象。通过传递*this指针,VC++告诉成员函数对哪个对象进行操作。有一些情况下必须直接对*this进行操作,但大多数情况可以忽略这个指针的存在。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者