类的描述分为两个部分,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++类的描述的更多相关文章

  1. python类:描述器Descriptors和元类MetaClasses

    http://blog.csdn.net/pipisorry/article/details/50444769 描述器(Descriptors) 描述器决定了对象属性是如何被访问的.描述器的作用是定制 ...

  2. python小知识-属性查询优先级(如果有同名类属性、数据描述符、实例属性存在的话,实例>类>数据描述符)

    https://www.cnblogs.com/Jimmy1988/p/6808237.html https://segmentfault.com/a/1190000006660339 https:/ ...

  3. 在Visual Studio中使用类图描述领域模型

    右键解决方案,添加一个名称为"Domain Model"的UML类图. 首先站在整体的角度添加类,先不要任何属性. 添加Customer对Wishlist的关联,把"属性 ...

  4. asp.net 类头部描述

    这里教大家怎么在新建类的时候默认有头部描述,先看效果: 像这样的内容我们要怎么进行添加呢? 前方高能...... 找到VS的安装目录-->比如我自己的安装目录D:\VS2013\Common7\ ...

  5. Python类总结-描述符__get__(),__set__(),__delete__()

    1 描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),set(),delete()中的一个,这也被称为描述符协议 get():调用一个属性时,触发 set():为一 ...

  6. 28.按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。 (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性, 和计算体积的方法。 (3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、 宽、高,输出其底面积和体积。

    //矩形父类 package d922A; public class Rect { private double l,w; Rect(double c,double k) { l=c; w=k; } ...

  7. 下面有关 JAVA 异常类的描述,说法正确的有()

    都是Throwable的子类: 1.Exception(异常) :是程序本身可以处理的异常. 2.Error(错误): 是程序无法处理的错误.这些错误表示故障发生于虚拟机自身.或者发生在虚拟机试图执行 ...

  8. Java Class类常用方法描述

    一 生成Class对象的三种方式 1 Class.forName("全路径名") 2  类名.Class 3 实例对象.getClass() 接着看三种方式生成Class对象的区别 ...

  9. 按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。 (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性, 和计算体积的方法。 (3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、 宽、高,输出其底面积和体积。

    package jvxing; public class Jvxing { //成员变量 private double width; private double chang; public doub ...

随机推荐

  1. [20180819]关于父子游标问题(11g).txt

    [20180819]关于父子游标问题(11g).txt --//sql语句存在父子游标,子游标堆6在父游标堆0里面.--//如果存在许多子游标的情况下,父游标堆0是否大小是发生变化呢.测试看看.--/ ...

  2. [20170606]11G _optimizer_null_aware_antijoin.txt

    [20170606]11G _optimizer_null_aware_antijoin.txt --//上午测试_optimizer_null_aware_antijoin,发现自己不经意间又犯了一 ...

  3. 第八章 计时器(BEEPER1)

    *------------------------------------- BEEPER1.C -- Timer Demo Program No. (c) Charles Petzold, ---- ...

  4. Java入门(七):方法

    方法,在日常生活中可以理解成解决问题或处理事情的技巧,一个方法的形成,需要思考和分析,从而形成一步一步的步骤,最后在实际执行过程中验证自己的思路.在Java中,方法的形成亦是如此. 方法,指用于封装一 ...

  5. puppet 和 apache passenger的配置

    目录 1. 概要 2. apache passenger 安装测试 2.1. 什么是 apache passenger 2.2. 安装 apache passenger 2.3. 配置 apache ...

  6. February 12th, 2018 Week 7th Monday

    One man's fault is another man's lesson. 前车之覆,后车之鉴. We make mistakes every day, large or small, fail ...

  7. Git&GitHub语法大全

    目录 1. GitHub与Git万用语法 1)创建库 2)添加和提交到仓库 3)版本回退 4)缓存区和暂存区 5)撤销和删除文件 6)远程仓库 7)创建和合并分支 2. 更多Git语法 1. GitH ...

  8. shell编程/字库裁剪(1)——想法

    版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/7679024.html 作者:窗户 Q ...

  9. GraphQL 是什么

    我的理解,GraphQL 是一种以Json为载体实现:操作数据和获取结果的需求的查询语言!简言:以Json换Json.

  10. 数组长度为len,数组元素的范围是0到len-1,找出数组的重复元素

    public static int findDuplicate(int[] nums) { int len = nums.length; //注意这里的for循环写法,在交换元素后,i没有增加,还要继 ...