主要讲面向对象的基本概念和一些概念,以及实现简单的面向对象C++程序。

类和对象

基本概念

类和对象是面向对象中的两个基本概念,类是指一类事物,是一个抽象的概念。对象是指某一个类的实体,是一个具体存在的事物。

类是一中模板,可以通过这种模板创建出不同的对象实例。对象实例是类模板的一个具体实现。一个类可以有很多个对象,而一个对象必然属于某个类。

类和对象的意义

类用于抽象的描述一类事物所特有的属性和行为。对象是一对一个特有的事物,拥有所属类的所有属性,并且每一个属性都有一个特有的值。

类之间的关系

类之间的关系都是很清晰的,但是一些类还是可以再进行具体细分,从同一个类细分出来的类和原来的类之间时候关系的,这种关系叫做继承。继承的类拥有原来的类的所有属性。

对象的深入含义

对象是一个类的实例,也就是一个类中的特定事物。 对象和类的关系就像模具和成品的关系,类就是一个模具,使用这个模具可以生产出多个不同的成品,这些成品就是各不相同的对象。同一个类中的不同对象都有对应的类中的属性和行为,但是在这些属性和行为不完全相同。

C++中类的表示方法

基本的表示方法如下图所示:


在C++中,struct代表一个类,分号“:”代表这个类从哪里继承来的。类里的具体内容主要包括属性和行为,属性使用变量来标示,行为使用函数来标示。

课后习题

使用生活中的实例,来描述类和类之间的关系。
这里套用的是课程中的思路来实现一个电脑的类以及属性,由于英语不是很好,所以拼音代替,哈哈~
例程如下:
#include <stdio.h>

struct Computer
{
bool Cpu;
bool Neicun;
int a();
}; struct Dell:Computer
{
bool hp;
char Japan;
int b();
}; struct Lenovo:Computer
{
bool lenovo;
char China;
int c()
{
printf ("L\n");
return 0;
}
}; struct Shenzhou:Computer
{
bool shenzhou;
char China;
int d();
}; struct key:Lenovo
{
bool bad;
int e();
}; int main()
{
Computer computer;
computer.Cpu = 1;
computer.Neicun = 1; Dell dell;
dell.hp = 1;
dell.Cpu = 1; Lenovo lenovo;
lenovo.c(); return 0;
}

C++基础学习笔记----第七课(面向对象的基本概念)的更多相关文章

  1. Python基础学习笔记(七)常用元组内置函数

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-tuples.html 3. http://www.liaoxue ...

  2. C++基础学习笔记----第十三课(操作符重载-下)

    本节主要讲使用成员函数重载操作符,包括[],=,(),->四种操作符的重载以及&&和||的问题. 类的成员函数进行操作符重载 基本概念 类的成员函数也可以进行操作符的重载.类的普 ...

  3. C++基础学习笔记----第四课(函数的重载、C和C++的相互调用)

    本节主要讲了函数重载的主要概念以及使用方法,还有C和C++的相互调用的准则和具体的工程中的使用技巧. 函数重载 1.基本概念 函数重载就是用同一个函数名来定义不同的函数.使用不同的函数参数来搭配同一个 ...

  4. python基础学习笔记(七)

    本章介绍如何将语句组织成函数,这样,可以告诉计算机如何做事. 下面编写一小段代码计算婓波那契数列(前两个数的和是第三个数) fibs = [0,1] # 定义一个列表,初始内容是0,1 for i i ...

  5. C++多线程基础学习笔记(七)

    一.std::async和std::future的用法 std::async是一个函数模板,std::future是一个类模板 #include <iostream> #include & ...

  6. JavaSE学习笔记(2)---面向对象基础

    JavaSE学习笔记(2)---面向对象基础 1.面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能.所以面向对象 ...

  7. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  8. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  9. C#RabbitMQ基础学习笔记

    RabbitMQ基础学习笔记(C#代码示例) 一.定义: MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开发).MQ是一种应用程序对应用程序的通信方法. ...

随机推荐

  1. SMTP邮件传输协议发送邮件和附件(转)

    1.     SMTP 常用命令简介 1). SMTP 常用命令 HELO/EHLO 向服务器标识用户身份 MAIL 初始化邮件传输 mail from: RCPT 标识单个的邮件接收人:常在MAIL ...

  2. JavaScript:获取系统当前时间,构造格式化的字符串

    var getNowFormatDate = function() {    var date = new Date();    var seperator1 = "-";    ...

  3. hadoop安全模式

      hadoop安全模式在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束.安全模式主要是为了系统启动的 ...

  4. mysql 从5.1升级到5.5.33 后 innodb 表出错 及 innodb表修复

    服务器使用的是mysql 5.1,了解到 5.5 系列的版本 innodb 的性能有很大提升,就想升级下.按照查到的步骤: http://www.myhack58.com/Article/sort09 ...

  5. JS - 按钮倒计时

    效果: html代码: <input type="button" id="btn" value="点击获取效验码" /> js代 ...

  6. ArrayList集合--C#

    static void Main(string[] args) { //实例化出一个集合对象 ArrayList list = new ArrayList(); /*添加*/ //--添加单个元素 l ...

  7. java设计模式之——策略模式

    1.策略模式有什么好处? 策略模式的好处在于你可以动态的改变对象的行为. 2.设计原则 设计原则是把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口(c++中可以用虚类),然后在类中包含这 ...

  8. [置顶] Android4.0中修改挂断键(ENDCALL)的默认行为

    文件: frameworks/base/core/java/android/provider/Setings.java public static final String END_BUTTON_BE ...

  9. NOI08冬令营 数据结构的提炼与压缩

    无聊随手翻,翻到了一个这样的好东西--据结构的提炼与压缩: 为了防止以后忘记,这里把论文里的题目都纪录一下吧. 1.二维结构的化简 问题一:ural 1568 Train car sorting 定义 ...

  10. 【Cocos2d-x游戏引擎开发笔记(25)】XML解析

    原创文章,转载请注明出处:http://blog.csdn.net/zhy_cheng/article/details/9128819 XML是一种非常重要的文件格式,由于C++对XML的支持非常完善 ...