类和对象

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string.h> using namespace std; struct Hero
{
char name[64];
int sex;
}; void printHero(struct Hero &h)
{
cout << "Hero" << endl; cout << "name = " << h.name << endl;
cout << "sex = " << h.sex << endl;
} class AdvHero
{
public://访问控制权限
char name[64];
int sex; void printHero()
{
cout << "advHero" << endl;
cout << "name = " << name << endl;
cout << "sex = " << sex << endl;
}
}; class Animal
{
//{}以内 叫类的内部, 以外叫类的外部
public:
char kind[64];
char color[64]; //在public下面定义成员变量和函数 是能够在类的内部和外部都可以访问的。
void printAnimal()
{
cout << "kind = " << kind << endl;
cout << "color = " << color << endl;
} void write()
{
cout << kind << "开始鞋子了" << endl;
}
void run()
{
cout << kind << "跑起来了" << endl;
} //
private:
//在private下面定义的成员变量和方法只能够在类的内部访问 }; int main(void)
{
Hero h; strcpy(h.name, "gailun");
h.sex = 1;
printHero(h); AdvHero advH;
strcpy(advH.name, "ChunBro");
advH.sex = 1; advH.printHero(); cout << "-----------" << endl;
Animal dog; strcpy(dog.kind, "dog");
strcpy(dog.color, "yellow"); Animal sheep; strcpy(sheep.kind, "sheep");
strcpy(sheep.color, "white"); dog.write();
sheep.run(); return 0;
}

类的封装

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

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

#define _CRT_SECURE_NO_WARNINGS
#include <iostream> using namespace std; struct Date
{
int year;
int month;
int day;
}; void init_date(struct Date & d)
{
cout << "year, month, day" << endl;
cin >> d.year;
cin >> d.month;
cin >> d.day;
} //打印data的接口
void print_date(struct Date &d)
{
cout << d.year << "年" << d.month << "月" << d.day << "日" << endl;
} bool is_leap_year(struct Date &d)
{
if (((d.year % 4 == 0) && (d.year % 100 != 0)) || (d.year % 400 == 0)) {
return true;
}
return false;
} class MyDate
{
public:
//成员方法 成员函数
void init_date()
{
cout << "year, month, day" << endl;
cin >> year;
cin >> month;
cin >> day;
} //打印data的接口
void print_date()
{
cout << year << "年" << month << "月" << day << "日" << endl;
} bool is_leap_year()
{
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
return true;
}
return false;
} int get_year()
{
return year;
} void set_year(int new_year)
{
year = new_year;
} protected://保护控制权限。在类的继承中跟private有区别,在单个类中,跟private是一抹一样。
private:
int year;
int month;
int day;
}; //一个类类的内部,默认的访问控制权限是private
class Hero
{ int year;
}; //一个结构体默认的访问控制权限的是public
struct Hero2
{
int year;
void print()
{ }
}; int main(void)
{
#if 0
Date d1; init_date(d1);
print_date(d1);
if (is_leap_year(d1) == true) {
cout << "是闰年 " << endl;
}
else {
cout << "不是闰年 " << endl;
}
#endif MyDate my_date; my_date.init_date(); my_date.print_date(); if (my_date.is_leap_year() == true)
{
cout << "是闰年 " << endl;
}
else {
cout << "不是闰年 " << endl;
} //getter,setter
cout << my_date.get_year() << endl;
my_date.set_year(2000);
cout << my_date.get_year() << endl; Hero h;
//h.year = 1000; Hero2 h2;
h2.year = 100; return 0;
}

面向对象和面向过程

#define _CRT_SECURE_NO_WARNINGS
#include <iostream> using namespace std; class Dog
{
public:
void eat(char *food)
{
cout << name << "³Ô" << food << endl;
} char name[64];
}; //ÃæÏò¹ý³Ì
void eat(class Dog &dog, char *food)
{
cout << dog.name << "³Ô" << food << endl;
} int main(void)
{
Dog dog; strcpy(dog.name, "¹·"); eat(dog, "Ïè"); dog.eat("Ïè"); return 0;
}

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. kipmio占用cpu资源过高

    虽然这是一个利用空余的CPU资源进行一些接口自动调节的任务,但看着占那么多的资源还是怕出意外. 可以临时降低 echo 100 > /sys/module/ipmi_si/parameters/ ...

  2. day 24 组合的补充

    一.组合的补充: 1.类或对象可以做字典的key 2.对象中到底有什么? # class Foo(object): # # def __init__(self,age): # self.age = a ...

  3. 如何使用Git命令克隆仓库代码

    今天我的电脑装了新系统,刚装了Git到电脑上,突然有一个大胆的想法,以后不适用可视化工具了. 要逐步锻炼我的命令的操作能力,不能太依赖可视化工具. 今天先记录一下如何使用git命令克隆仓库代码 git ...

  4. python让你再也不为文章配图与素材发愁,让高清图片占满你的硬盘! #华为云·寻找黑马程序员#

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  5. luogu P3572 [POI2014]PTA-Little Bird |单调队列

    从1开始,跳到比当前矮的不消耗体力,否则消耗一点体力,每次询问有一个步伐限制,求每次最少耗费多少体力 #include<cstdio> #include<cstring> #i ...

  6. luogu P2507 [SCOI2008]配对

    题目描述 你有 n 个整数Ai和n 个整数Bi.你需要把它们配对,即每个Ai恰好对应一个Bp[i].要求所有配对的整数差的绝对值之和尽量小,但不允许两个相同的数配对.例如A={5,6,8},B={5, ...

  7. [TimLinux] JavaScript 判断 input checkbox选中的方法

    1. input属性 <label> <span>选择</span> <input type="checkbox" name=" ...

  8. 牛客练习赛32 B题 Xor Path

    链接:https://ac.nowcoder.com/acm/contest/272/B来源:牛客网 题目描述 给定一棵n个点的树,每个点有权值.定义表示  到  的最短路径上,所有点的点权异或和. ...

  9. UVA-1608

    We were afraid of making this problem statement too boring, so we decided to keep it short. A sequen ...

  10. 赌十包辣条,你一定没见过这么通透的ThreadLocal讲解

    1.看个热闹 鉴于普罗大众都喜欢看热闹,咱们先来看个热闹再开工吧! 场景一: 中午了, 张三.李四和王五一起去食堂大菜吃饭.食堂刚经营不久,还很简陋,负责打菜的只有一位老阿姨. 张三:我要一份鸡腿. ...