类和对象

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <string.h>
  4. using namespace std;
  5. struct Hero
  6. {
  7. char name[64];
  8. int sex;
  9. };
  10. void printHero(struct Hero &h)
  11. {
  12. cout << "Hero" << endl;
  13. cout << "name = " << h.name << endl;
  14. cout << "sex = " << h.sex << endl;
  15. }
  16. class AdvHero
  17. {
  18. public://访问控制权限
  19. char name[64];
  20. int sex;
  21. void printHero()
  22. {
  23. cout << "advHero" << endl;
  24. cout << "name = " << name << endl;
  25. cout << "sex = " << sex << endl;
  26. }
  27. };
  28. class Animal
  29. {
  30. //{}以内 叫类的内部, 以外叫类的外部
  31. public:
  32. char kind[64];
  33. char color[64];
  34. //在public下面定义成员变量和函数 是能够在类的内部和外部都可以访问的。
  35. void printAnimal()
  36. {
  37. cout << "kind = " << kind << endl;
  38. cout << "color = " << color << endl;
  39. }
  40. void write()
  41. {
  42. cout << kind << "开始鞋子了" << endl;
  43. }
  44. void run()
  45. {
  46. cout << kind << "跑起来了" << endl;
  47. }
  48. //
  49. private:
  50. //在private下面定义的成员变量和方法只能够在类的内部访问
  51. };
  52. int main(void)
  53. {
  54. Hero h;
  55. strcpy(h.name, "gailun");
  56. h.sex = 1;
  57. printHero(h);
  58. AdvHero advH;
  59. strcpy(advH.name, "ChunBro");
  60. advH.sex = 1;
  61. advH.printHero();
  62. cout << "-----------" << endl;
  63. Animal dog;
  64. strcpy(dog.kind, "dog");
  65. strcpy(dog.color, "yellow");
  66. Animal sheep;
  67. strcpy(sheep.kind, "sheep");
  68. strcpy(sheep.color, "white");
  69. dog.write();
  70. sheep.run();
  71. return 0;
  72. }

类的封装

一个类类的内部,默认的访问控制权限是private

一个结构体默认的访问控制权限的是public

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. using namespace std;
  4. struct Date
  5. {
  6. int year;
  7. int month;
  8. int day;
  9. };
  10. void init_date(struct Date & d)
  11. {
  12. cout << "year, month, day" << endl;
  13. cin >> d.year;
  14. cin >> d.month;
  15. cin >> d.day;
  16. }
  17. //打印data的接口
  18. void print_date(struct Date &d)
  19. {
  20. cout << d.year << "年" << d.month << "月" << d.day << "日" << endl;
  21. }
  22. bool is_leap_year(struct Date &d)
  23. {
  24. if (((d.year % 4 == 0) && (d.year % 100 != 0)) || (d.year % 400 == 0)) {
  25. return true;
  26. }
  27. return false;
  28. }
  29. class MyDate
  30. {
  31. public:
  32. //成员方法 成员函数
  33. void init_date()
  34. {
  35. cout << "year, month, day" << endl;
  36. cin >> year;
  37. cin >> month;
  38. cin >> day;
  39. }
  40. //打印data的接口
  41. void print_date()
  42. {
  43. cout << year << "年" << month << "月" << day << "日" << endl;
  44. }
  45. bool is_leap_year()
  46. {
  47. if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
  48. return true;
  49. }
  50. return false;
  51. }
  52. int get_year()
  53. {
  54. return year;
  55. }
  56. void set_year(int new_year)
  57. {
  58. year = new_year;
  59. }
  60. protected://保护控制权限。在类的继承中跟private有区别,在单个类中,跟private是一抹一样。
  61. private:
  62. int year;
  63. int month;
  64. int day;
  65. };
  66. //一个类类的内部,默认的访问控制权限是private
  67. class Hero
  68. {
  69. int year;
  70. };
  71. //一个结构体默认的访问控制权限的是public
  72. struct Hero2
  73. {
  74. int year;
  75. void print()
  76. {
  77. }
  78. };
  79. int main(void)
  80. {
  81. #if 0
  82. Date d1;
  83. init_date(d1);
  84. print_date(d1);
  85. if (is_leap_year(d1) == true) {
  86. cout << "是闰年 " << endl;
  87. }
  88. else {
  89. cout << "不是闰年 " << endl;
  90. }
  91. #endif
  92. MyDate my_date;
  93. my_date.init_date();
  94. my_date.print_date();
  95. if (my_date.is_leap_year() == true)
  96. {
  97. cout << "是闰年 " << endl;
  98. }
  99. else {
  100. cout << "不是闰年 " << endl;
  101. }
  102. //getter,setter
  103. cout << my_date.get_year() << endl;
  104. my_date.set_year(2000);
  105. cout << my_date.get_year() << endl;
  106. Hero h;
  107. //h.year = 1000;
  108. Hero2 h2;
  109. h2.year = 100;
  110. return 0;
  111. }

面向对象和面向过程

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. using namespace std;
  4. class Dog
  5. {
  6. public:
  7. void eat(char *food)
  8. {
  9. cout << name << "³Ô" << food << endl;
  10. }
  11. char name[64];
  12. };
  13. //ÃæÏò¹ý³Ì
  14. void eat(class Dog &dog, char *food)
  15. {
  16. cout << dog.name << "³Ô" << food << endl;
  17. }
  18. int main(void)
  19. {
  20. Dog dog;
  21. strcpy(dog.name, "¹·");
  22. eat(dog, "Ïè");
  23. dog.eat("Ïè");
  24. return 0;
  25. }

c++-面向对象:类和对象的更多相关文章

  1. Java面向对象-类与对象

    Java面向对象-类与对象 类与对象的关系 我们通俗的举个例子,比如人类是一种类,张三这个人就是人类的具体的一个个体,也就是java中的对象:这就是一个类与对象的关系: 类的定义 下面看实例 类的创建 ...

  2. Python之面向对象类和对象

    Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object): """ 类里定义一类事物共同的技能. 可以是变量,也可是函 ...

  3. C#编程语言与面向对象——类与对象

    由于ASP.NET技术是全面向对象的,因此,要掌握这一技术,必须具备有扎实的面向对象理论基础 使用C#编程,所有的程序代码几乎都放在类中,不存在独立于类中之外的函数,因此,类是面向对象编程的基本单元 ...

  4. OC语言的面向对象—类和对象、方法

    1. 面向对象和面向过程思想 OC是面向对象的,C是面向过程的.面向对象和面向过程只是解决问题的两种不同思想 1. 面向对象和面向过程的区别 1) 以用电脑听歌为例子 a) 面向过程 ➢ 打开电脑 ➢ ...

  5. linkin大话面向对象--类和对象

    我们每天在撸码,那么我们在敲什么东西呢?明显的我们在写类,写一个类,写一个接口,写某个接口里面写一些属性,在某个类里面写一个方法,然后以一个对象调用方法,对于j2ee来讲的话,可能还会写一些jsp,静 ...

  6. Java面向对象——类,对象和方法

    1.类的概念 在生活中,说到类,可以联想到类别,同类,会想到一类人,一类事物等等.而这一类人或事物都是具有相同特征或特点和行为的,我们根据不同的特征或特点和行为将他们归类或分类.同时,当我们认识一个新 ...

  7. day 22 面向对象 类与对象 名称空间操作

    一.面向对象 1.面向过程编程 核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么 基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式. 优点:复杂的问 ...

  8. Java面向对象类与对象整理

    第一章           面向对象: 1.1         什么是面向过程: 遇到某件事的时候,思考 “我该怎么做”然后一步一步实现的过程 1.2         什么是面向对象: 遇到某件事的时 ...

  9. python面向对象(类和对象及三大特性)

    类和对象是什么 创建类 新式类 和 经典类 面向对象三大特性 继承 封装 多态   面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  10. java 面向对象 — 类和对象

    构造方法 1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造器 3.构造器可以有0个.1个或1个以上的参数 4.构造器没有返回值 5.构造器 ...

随机推荐

  1. java之初见

    1.Java语言的了解: Java语言最早是由SUN公司创造出来的,1991年,SUN公司的green项目,Oak,随后SUN公司和后来的甲骨文公司又先后发布了java1.0,1.1,1.2,1.3, ...

  2. Dubbo实现登陆

    一.目录展示 二.dubbo_logins_service 2.1 实体类和service层 2.2 logins实体类 package com.login.entity; import java.i ...

  3. 设计模式之工厂模式(Factory)

    转载请标明出处:http://blog.csdn.net/shensky711/article/details/53348412 本文出自: [HansChen的博客] 设计模式系列文章: 设计模式之 ...

  4. 【Powershell 教程】学习资源汇总

    [Powershell 教程]学习资源汇总 一.书籍教程 1.<Windows PowerShell实战指南>第3版 作者:[美] Don,Jones(道·琼斯),Jeffery,Hick ...

  5. 【Android - 自定义View】之View的工作过程简介

    View的工作过程分为三个过程: View的measure过程: View的layout过程: View的draw过程. 我们知道,一个Activity就是一个窗口,这个窗口中包含一个Window.一 ...

  6. Xtrabackup 全备和还原以及增量备份和还原

    目录 MySQL环境介绍 全备和还原 准备备份目录 创建测试数据 全量备份 模拟删除数据 还原数据操作 第一步 备份备份文件 第二步 关闭数据库 第三步 移除数据库的data目录 第四步 恢复前准备 ...

  7. Echarts自定义折线图例,增加选中功能

    用Echarts图表开发,原本的Echarts图例不一定能满足我们的视觉要求. 下面是Echarts 折线图自定义图例,图例checked选中,相应的折线线条会随之checked,其余未选中的图例对应 ...

  8. jsp中标签的序号问题

    采用ststus.count进行序号的显示,但是设置了分页之后会出现点击下一页之后第二页的序号还是从1开始排序的,有时候并不方便,所以本文章针对带有分页的序号进行设置: <c:forEach i ...

  9. Python爬虫从入门到精通——基本库re的使用:正则表达式【华为云技术分享】

    置顶:华为云618大促火热进行中,全场1折起,免费抽主机,消费满额送P30 Pro,点此抢购. 正则表达式是处理字符串的强大工具,它有自己特定的语法结构,有了它,实现字符串的检索.替换.匹配验证都不在 ...

  10. 遍历json数据的几种方式。

    json(JavaScript Object Notation),json是一种多用于存储和交换文本信息的语法.他能够进行数据的传输,通常和ajax一起使用.它具有体积小.速度快,易解析等诸多优点. ...