给大家介绍对象

1.如何定义一个类

在 C++ 中,类的定义方法如下:

class 类名{

访问范围说明符:

成员变量1

成员变量2

成员函数声明1

成员函数声明2

访问范围说明符:

更多成员变量

更多成员函数声明

...

};

类的定义要以;结束。“访问范围说明符”一共有三种,分别是 public、private 和 protected。

成员函数的实现可以位于类的定义之外,格式如下:

返回值类型 类名:函数名()

{

函数体

}

下面来看一个用面向对象的方法进行 C++ 程序设计的例子。

例题:编写一个程序,输入矩形的宽度和高度,输出其面积和周长。

这个程序比较简单,实际上根本不需要用面向对象的方法进行设计,这里只是为了使读者更容易理解类和对象的概念。

首先要做的事情是分析问题中有哪些“对象”。比较明显,只有“矩形”这种对象。然后要进行“抽象”,即概括“矩形”这种对象的共同特点。

矩形的属性就是宽度和高度。因此需要两个变量,分别代表宽度和高度。

一个矩形可以有哪些方法(即可以对矩形进行哪些操作)呢?在本程序中,矩形可以有设置宽度和高度、计算面积和计算周长三种行为,这三种行为可以各用一个函数实现,它们都会用到宽度和高度这两个变量。

“抽象”完成后,就可以用 C++ 提供的语法特性写出一个“矩形类”,将矩形的属性和方法“封装”在一起。程序如下:

#include

using namespace std;

class CRectangle

{

public:

int w, h; //成员变量,宽和高

void init( int w_,int h_ ); //成员函数,设置宽和高

int area(); //成员函数, 求面积

int perimeter(); //成员函数,求周长

}; //必须有分号

void CRectangle::init( int w_,int h_ )

{

w = w_; h = h_;

}

int CRectangle::area()

{

return w * h;

}

int CRectangle::perimeter()

{

return 2 * ( w + h);

}

int main( )

{

int w,h;

CRectangle r; //r是一个对象

cin >> w >> h;

r.init( w,h);

cout << "It's area is " << r.area() << endl;

cout << "It's perimeter is " << r. perimeter();

cout << sizeof(CRectangle) << endl;

return 0;

}

下面是我自己实现的版本,注意看注释:

#include

class rectangle

{

public:

//声明类的属性:

int w,h;

//声明类的方法:

void init(int, int);//这里和普通函数声明一样可以不写形参名

int primeter();

int area();

//也可以直接把函数定义直接写在类里面,在这里写就不用带上::符号,但是要带上形参,并且不能再写声明

/*

void init(int w_, int h_)

{

w = w_;

h = h_;

}

*/

};

void rectangle::init(int w_, int h_)

{

w = w_;

h = h_;

//注意这里,相当于是默认这个函数知道有w和h这两个属性的。

}

int rectangle::area()

{

return w*h;

}

int rectangle::primeter()

{

return 2*(w+h);

}

int main()

{

rectangle rec;

rec.init(4,5);

std::cout << rec.area() <

return 0;

}

标签:函数,甲鱼,成员,C语言,int,init,P14,矩形,rectangle

来源: https://blog.csdn.net/Ordinary_Bird/article/details/101035444

小甲鱼c语言照片,【跟着小甲鱼学C语言】P14 给大家介绍对象相关推荐

  1. “跟着菜鸟一起学R语言” 现已更名为“数据志”

    大家好,我的公众号"跟着菜鸟一起学R语言" 现已更名为"数据志",欢迎大家关注,谢谢.

  2. c语言程序设计需要学多久,九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会...

    九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会 首页 > C语言 > 九江c语言编程学习 作者:镀金池   发布时间:2017-10-18 14:11 据ID ...

  3. 汕头c语言培训班,汕头c语言编程学习,汕头学c语言编程哪个好,汕头学c语言编程需要报培训班吗...

    汕头c语言编程学习,汕头学c语言编程哪个好,汕头学c语言编程需要报培训班吗 首页 > C语言 > 汕头c语言编程学习 作者:镀金池   发布时间:2017-10-18 20:12 经历:若 ...

  4. python是c语言写的吗-先学C语言还是Python?资深程序员往往是这样建议的!

    编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...

  5. c语言程序设计自学跟谁好,双辽c语言编程学习,双辽学c语言编程哪个好,双辽学c语言编程自学好还是报班好...

    双辽c语言编程学习,双辽学c语言编程哪个好,双辽学c语言编程自学好还是报班好 首页 > 软件 > 双辽c语言编程学习 作者:镀金池   发布时间:2017-12-07 05:48 一个C语 ...

  6. c语言编程学多久,丰城c语言编程学习,丰城学c语言编程的学校,丰城学c语言编程一般要多久才能学会...

    丰城c语言编程学习,丰城学c语言编程的学校,丰城学c语言编程一般要多久才能学会 首页 > 软件 > 丰城c语言编程学习 作者:镀金池   发布时间:2018-04-09 16:40 在之后 ...

  7. 成都c语言编程培训机构,成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗...

    成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗 首页 > 软件 > 成都学c语言编程 作者:镀金池   发布时间:2018-09-28 14:20 近似带有序布局 ...

  8. 湛江C语言培训,湛江c语言编程学习,湛江学c语言编程报班,湛江学c语言编程自学好还是报班好...

    湛江c语言编程学习,湛江学c语言编程报班,湛江学c语言编程自学好还是报班好 首页 > C语言 > 湛江c语言编程学习 作者:镀金池   发布时间:2017-10-19 09:51 在Swi ...

  9. 学python看小甲鱼还是黑马_P1 跟着小甲鱼(2019年新版)学习Python的第一天

    P1 跟着小甲鱼(2019年新版)学习Python的第一天 (如有侵权,请联系小up删除) 作为一个python的初学者,一直没有毅力好好学习一门编程语言,想利用这个方法监督自己,跟着小甲鱼一起学习p ...

  10. 电气自动化需要学c语言,电气自动化专业需要学C语言吗?

    电气工程及其自动化专业要学C语言. 1.专业学位课程: 高等数学.电路原理.电子技术基础.微型计算机技术.计算机网络 .电机学.自动控制理论.电力系统分析.电力系统继电保护.C语言.C++. 2.专业 ...

最新文章

  1. CS0016: 未能写入输出文件的解决方法
  2. LeetCode 430. 扁平化多级双向链表(DFS)
  3. 怎么生成a类型的对象 java_Java工程师考试题(答案)
  4. python版本安装
  5. IE8的样式兼容性适应方法【转】
  6. vue自定义一个视频播放器
  7. 男人的梦想:世界名车标志
  8. 技术债务-坏味道、Bug、漏洞
  9. python的词性标注
  10. 8月24日科技联播:特斯拉回应苹果“疯狂挖人”,对方比我们有钱100倍
  11. Documentum常见问题4—如何通过vlink方式直接查看文档内容【转】
  12. 蜂鸟E203硬件 RV-STAR和Nuclei DDR200T和MCU200T比较
  13. ccsa安学网小程序_CCSA安学网题库及答案
  14. 【JZOJ6150】爱乐之城
  15. nodemon:运行提示错误:无法加载文件 xxxx
  16. 【论文阅读】DeepGauge: multi-granularity testing criteria for deep learning systems.
  17. 群环域,理想商环,原根复习
  18. Java并发编程之Exchanger
  19. 南通五年制计算机大专学校,南通比较好的五年制的大专有哪些
  20. 疯狂解读HashMap源码

热门文章

  1. SpreadJS 2021 V14.1 Crack
  2. 互联网协议理解(入门)
  3. 数值计算求解动态热传导方程
  4. 理解引用 SqList L 与 SqList L 的区别
  5. 通过企业微信服务端API接口进行群发应用消息
  6. 小脚丫 LCMXO2 4000HC FPGA入门——点个灯
  7. 简洁明了:基于eova平台,对Vue 页面中的自定义Button按钮进行用户权限控制处理
  8. 你知道门禁卡的原理吗?手机模拟门禁卡研究
  9. CSS 字体 font-family属性
  10. 100个必会的python脚本-python100例,python经典例题