| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 1.5 自有数据类型 -> 正文阅读 |
|
[C++知识库]1.5 自有数据类型 |
1.5.1 类cururncy 在学习数据结构时,除了C++自身提供的int ,float ,double等数据类型以外,更多的数据结构是我们自己需要定义的。而需要自己定义的数据类型就是自有数据类型。 在C++中定义自有数据类型的最灵活的方法就是使用C++的类(class)结构。 现需要你设定一个处理货币类型的currency的对象(也称为实例)。 这种对象有三个成员:符号,美元,美分。例如$2.35(2 美元,35美分,符号是+)。 对这种对象我们想要执行的操作如下: ·给成员赋值 ·确定成员值 ·两个对象相加 ·增加成员的值 ·输出 程序1-13 currency类声明
类的成员声明了两个部分: 1.公有(public) 用来声明操作类对象的成员函数,他们对用户是可见的,是用户与类对象交互的唯一手段 2.私有(private) 私有部分一般放简单的变量,可赋值的结构。他们对用户是不可见的。通查与实现细节有关。 “一个优秀的软件设计者会在私有部分声明数据成员” 程序分析: 1.公有部分: ????????第一个成员函数:
????????与类名相同,这种函数名与类名相同的函数称作构造函数。 ?在本例中,构造函数有三个参数,其缺省值(默认选项)分别是plus,0和0。 创建一个currency类对象时,构造函数就会被自动调用。 创建currency类对象的方法有如下两种:
?第一行声明了三个currency对象f,g,h。其中f用缺省值(plus,0,0)初始化,结果为$0.00。 第二个成员函数:
? ? ? ? 第二个成员函数是~currency函数,比类名多了一个~。这种成员函数成为析构函数。 每当一个currency类的函数超出作用域时,就会自动调用析构函数来删除这个对象。与构造函数一样,析构函数也没有返回值。? ?函数:
这两个函数的名称相同,但是他们的签名是不一样的,所以导致他们的调用方法不一样。
?成员函数(1):
????????getSign、getDollars和getCents返回对象的相应数据成员,关键字const 指明这些对象时不会改变值的。这些函数被称为常量函数。 成员函数(2):
add()把调用对象的货币值与参数对象的货币值相加,返回相加结果。 increment()将符号加到调用对象上。 add()返回的是对象的值。 incerment()返回的对象的引用。(可改变对象的值) 程序1-13没有指定复制构造函数,C++将使用缺省复制构造函数,仅仅复制数据成员。 作用域说明符 “::”用于指明该函数currency类的成员函数。因此currency::currency表示currency的构造函数(因为与类名相同)。而currency::output表示currency类的有output成员函数。 程序1-14实现了currency的构造函数。仅仅调用了具有三个成员函数的setValue来给数据对象成员初始化。 程序1-14 currency的构造函数
程序1-15 给私有数据成员赋值
程序1-17 函数increment 和 output?
类currency的数据成员以及被设为私有,用户不能直接访问。因此,用户通过下面的语句直接改变私有数据是允许的。
? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 0:20:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |