C++类的描述
类的描述分为两个部分,public和private
public可以用来定义函数,对类的对象进行操作,对于用户是可见的,是用户对对象操作的唯一手段。
private部分用于定义函数和数据成员,这些函数和数据成员对于用户是看不见的
借助于public与private部分,可以让用户只看到他们需要看到的部分,把其他信息隐藏起来。尽管C++语法允许在public部分定义数据成员,但在软件工程实践中不鼓励这种做法。
C语言中将基本数据类型划分为signed(有符号)和unsigned(无符号)两大类。
int a; 等价于 signed int a;
enum sign{ plus,minus};
class Currency{
public:
//构造函数
Currency(sign s=plus,unsigned long d=,unsigned int c= );
//析构函数
~Currency(){}
private:
sign sgn;
unsigned long dollars;
unsigned int cents;
};
public 第一个函数与Currency类同名,称为构造函数。指明如何创建一个给定类型的对象,它不可以有返回值。创建对象时,构造函数被自动唤醒。
析构函数:Currency对象超出作用域时自动调用析构函数,用于删除对象,不可能有返回值。
#include<iostream>
//using namespace std; enum sign{ plus,minus};
class Currency{
public:
//构造函数
Currency(sign s=plus,unsigned long d=,unsigned int c= );
//析构函数
~Currency(){}
bool Set(sign s,unsigned long d,unsigned int c);
Currency Add(const Currency & x) const; //返回的是指
Currency& Increment(const Currency& x);//返回的是引用
void output() const;
private:
sign sgn;
unsigned long dollars;
unsigned int cents;
}; Currency::Currency(sign s,unsigned long d,unsigned int c){
sgn=s;dollars=d,cents=c;
}
bool Currency::Set(sign s,unsigned long d,unsigned int c){
if(c>) return false;
sgn=s;
dollars=d;
cents=c;
}
Currency Currency::Add(const Currency& x) const{
long a1,a2,a3;
Currency ans;
return ans;
}
Currency& Currency::Increment(const Currency& x){
*this=Add(x); //*this就是当前对象
return *this;
} void Currency::output()const {
std::cout<<dollars<<" "<<cents<<" "<<sgn<<" ";
}
重载操作符; Currency包含多个与C++标准操作符相类似的成员函数,可以直接利用C++标准操作符操作
友元函数:将private成员的访问权限授予其他类和函数,就需要将其定义为友元。
C++类的描述的更多相关文章
- python类:描述器Descriptors和元类MetaClasses
http://blog.csdn.net/pipisorry/article/details/50444769 描述器(Descriptors) 描述器决定了对象属性是如何被访问的.描述器的作用是定制 ...
- python小知识-属性查询优先级(如果有同名类属性、数据描述符、实例属性存在的话,实例>类>数据描述符)
https://www.cnblogs.com/Jimmy1988/p/6808237.html https://segmentfault.com/a/1190000006660339 https:/ ...
- 在Visual Studio中使用类图描述领域模型
右键解决方案,添加一个名称为"Domain Model"的UML类图. 首先站在整体的角度添加类,先不要任何属性. 添加Customer对Wishlist的关联,把"属性 ...
- asp.net 类头部描述
这里教大家怎么在新建类的时候默认有头部描述,先看效果: 像这样的内容我们要怎么进行添加呢? 前方高能...... 找到VS的安装目录-->比如我自己的安装目录D:\VS2013\Common7\ ...
- Python类总结-描述符__get__(),__set__(),__delete__()
1 描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),set(),delete()中的一个,这也被称为描述符协议 get():调用一个属性时,触发 set():为一 ...
- 28.按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。 (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性, 和计算体积的方法。 (3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、 宽、高,输出其底面积和体积。
//矩形父类 package d922A; public class Rect { private double l,w; Rect(double c,double k) { l=c; w=k; } ...
- 下面有关 JAVA 异常类的描述,说法正确的有()
都是Throwable的子类: 1.Exception(异常) :是程序本身可以处理的异常. 2.Error(错误): 是程序无法处理的错误.这些错误表示故障发生于虚拟机自身.或者发生在虚拟机试图执行 ...
- Java Class类常用方法描述
一 生成Class对象的三种方式 1 Class.forName("全路径名") 2 类名.Class 3 实例对象.getClass() 接着看三种方式生成Class对象的区别 ...
- 按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。 (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性, 和计算体积的方法。 (3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、 宽、高,输出其底面积和体积。
package jvxing; public class Jvxing { //成员变量 private double width; private double chang; public doub ...
随机推荐
- hive笔记:转义字符的使用
hive中的转义符 Hadoop和Hive都是用UTF-8编码的,所以, 所有中文必须是UTF-8编码, 才能正常使用 备注:中文数据load到表里面, 如果字符集不同,很有可能全是乱码需要做转码的, ...
- mysql 数据库安装
一.Mysql的安装 1. 安装mysql-server服务端 版本5.7.19-0ubuntu0.16.04.1 目前可以下载的版本: 5.5 5.6 5.7 8.0 测试版 输入:(我这里不需要客 ...
- UNIX高级环境编程(14)文件IO - O_DIRECT和O_SYNC详解 < 海棠花溪 >
春天来了,除了工作学习,大家也要注意锻炼身体,多出去运动运动. 上周末在元大都遗址公园海棠花溪拍的海棠花. 进入正题. O_DIRECT和O_SYNC是系统调用open的flag参数.通过指定o ...
- March 03rd, 2018 Week 9th Saturday
No cross, no crown. 不经历风雨,怎能见彩虹. Sometimes you can see a beautiful rainbow high in the sky without h ...
- 《Java大学教程》—第21章 高级案例研究
21.3 需求:P510用例模型(use case model):用例图(use case diagram).用例(use case).行为说明(behaviour specification) ...
- 《Java大学教程》—第16章 二维数组
多维(Multi-dimensional)数组维数由索引个数决定.常用的数组:一维(one-dimensional)数组.二维(two-dimensional)数组 16.2 创建二维数组索引从 ...
- ES5-ES6-ES7_函数的扩展
call()/apply()/bind()的用法 Function.prototype.bind(obj) :将函数内的this绑定为obj, 并将函数返回 function foo() { cons ...
- Django-rest-framework 接口实现 rest_framework 中有已经定义好的 工具类 mixins generics viewsets
rest_framework.mixins 请求业务 的 5 种实现 mixin(混合类):不能单独使用,和其它类搭配起来使用(利用了Python支持多继承) rest_framework.mix ...
- Linux 系统故障排查和修复技巧
Linux 系统故障排查和修复技巧 我发现Linux系统在启动过程中会出现一些故障,导致系统无法正常启动,我在这里写了几个应用单用户模式.GRUB命令操作.Linux救援模式的故障修复案例帮助大家了解 ...
- PHP语言在中国的发展前景怎么样?
PHP语言在中国的发展前景怎么样? “在互联网泛滥得今天,想要做好这一行业不是那么容易的,然而,互联网编程语言的发展PHP编程语言的出现也是赢了世界发展的潮流. PHP在我国发展也很快,越来越多的编程 ...