主要讲面向对象的基本概念和一些概念,以及实现简单的面向对象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. Js 30 BOM

    小知识点, 1.document.write()方法: 如果document.write()在一个事件中或window.onload=function(){}这个function里, 那么docume ...

  2. Python 第十三篇之二:jQuery基础

    一:jQuery是一个兼容多浏览器的javascript类库,核心理念是write less,do more(写得更少,做得更多),对javascript进行了封装,是的更加便捷的开发,并且在兼容性方 ...

  3. Ubuntu服务器上SSH Server 的安装和设置

    网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-server服务.最终成功的方法如下: ...

  4. 为什么国内的网盘公司都在 TB 的级别上竞争,成本会不会太高?(还有好多其它回复)

    作者:杜鑫链接:http://www.zhihu.com/question/21591490/answer/18762821来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处 ...

  5. 一个Java程序的执行过程(转)

    我们手工执行java程序是这样的:  1.在记事本中或者是UE的文本编辑器中,写好源程序:  2.使用javac命令把源程序编译成.class文件:    编译后的.class(类字节码)文件中会包含 ...

  6. Linux高性能server编程——Linux网络基础API及应用

     Linux网络编程基础API 具体介绍了socket地址意义极其API,在介绍数据读写API部分引入一个有关带外数据发送和接收的程序,最后还介绍了其它一些辅助API. socket地址API 主 ...

  7. phantomjs环境搭建已经运行

    1.下载phantomjs http://phantomjs.org/ 2.运行 新建phantomjs.bat,记得改目录路径 里面内容为: D:\java\phantomjs\phantomjs. ...

  8. ACM比赛(进制转换)

    Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Description 把十进制整数转换 ...

  9. 15-UIKit(view布局、Autoresizing)

    目录: 1. 纯代码布局 2. 在View中进行代码布局 3. Autoresizing 回到顶部 1. 纯代码布局 纯代码布局分VC下和V下 [MX1-layout-code] 在VC下覆盖view ...

  10. Windows Azure 社区新闻综述(#78 版)

    欢迎查看最新版本的每周综述,其中包含有关云计算和 Windows Azure 的社区推动新闻.内容和对话.以下是本周的亮点. 博客文章: 博客:Windows Azure BizTalk 服务:如何开 ...