主要讲面向对象的基本概念和一些概念,以及实现简单的面向对象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. [Swust OJ 842]--实验室和食堂(最短路,Dijkstra算法)

    题目链接:http://acm.swust.edu.cn/problem/842/ Time limit(ms): 1000 Memory limit(kb): 10000   Description ...

  2. UVA 531 - Compromise(dp + LCS打印路径)

      Compromise  In a few months the European Currency Union will become a reality. However, to join th ...

  3. CMake入门指南

    原文地址:http://www.cnblogs.com/sinojelly/archive/2010/05/22/1741337.html CMake是一个比make更高级的编译配置工具,它可以根据不 ...

  4. im 编辑命令总结

    一. VIM高亮 进入vim后,在普通模式下输入如下命令,开启php代码高亮显示   :syntax enable   :source $VIMRUNTIME/syntax/php.vim   二. ...

  5. 动态规划之插头DP入门

    基于联通性的状态压缩动态规划是一类非常典型的状态压缩动态规划问题,由于其压缩的本质并不像是普通的状态压缩动态规划那样用0或者1来表示未使用.使用两种状态,而是使用数字来表示类似插头的状态,因此.它又被 ...

  6. Qt 内存管理机制

    这篇文章首先发布于我的主页 http://www.devbean.info,以后也会直接发布在那里.现在有 Flex 4 的一篇和 <从 C++ 到 Objective-C>系列,感谢大家 ...

  7. Android TextView(同时显示图片+文字)

    见上图:需要图片和文字 在一起 之前的做法是用两个控件组成 <LinearLayout> <ImageView /> <TextView /> </Linea ...

  8. java正则去掉小数点后多余0

    需求:已知字符串为一数字字符形式,多为float,double转换过来,将其后多余的0与.去掉. package test; /** * 去掉多余的.与0 * @author Hust * @Time ...

  9. shapefile 编码错误问题解决 Wrong codepage of shapefile Warning 1: One or several characters couldn't be converted correctly from UTF-8 to ISO-8859-1.

    linux下运行,因为大部分shapefile 文件,在使用时都没有指定字符集,所以qgis只能从环境变量中获取设置环境变量中获取SHAPE_ENCODING. 目前唯一的解决办法就是设置环境变量 $ ...

  10. 蓝桥杯java高职组

    标题1: 猜年龄     美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中 国清华大学讲学.     一次,他参加某个重要会议,年轻的脸孔引人注目.于是 ...