本篇要学习的内容和知识结构概览 继承和派生的概念 派生 通过特殊化已有的类来建立新类的过程, 叫做”类的派生”, 原有的类叫做”基类”, 新建立的类叫做”派生类”. 从类的成员角度看, 派生类自动地将基类的所有成员作为自己的成员, 这叫做”继承”. 基类和派生类也可以叫做”父类”和”子类”, 也可以叫做”一般类”和”特殊类”. 继承 类的继承是指派生类继承基类的数据成员和成员函数. 继承用来表示类属关系, 不能将继承理解为构成关系 继承派生的作用 增加新的成员(数据成员和成员函数) 重新定义已有…
先来看看本节知识的结构图吧! 接下来我们就逐步来看一下所有的知识点: 结构的演化 C++中的类是从结构演变而来的, 所以我们可以称C++为”带类的C”. 结构发生质的演变 C++结构中可以定义函数, 称之为成员函数 结构定义格式, 像这样: struct 结构名 { 数据成员; 成员函数; }; // 注意这里的分号不要忘记 具体的代码, 像这样: : 模型图是这样的: 它表明: 我定义了一个结构体, 有两个私有的数据成员x, y, 两个公有的成员函数setXY(double, x, doubl…
本篇要学习的内容和知识结构概览 运算符重载使用场景 常规赋值操作 我们现在有一个类 想要实现这种赋值操作 具体实现如下: 所以说呢,我们在使用运算符进行运算的时候, 实际上也是通过函数来实现运算的. 任何运算都是通过函数来实现的, 所以通过运算符来进行计算, 实际也是通过函数来完成 运算符重载的实质 表达式 7 / 2 = 3, 7.0 / 2.0 = 3.5, 同一个运算符 / , 具有不同的意义, 称之为”运算符重载”, 实际上就是"函数重载". 每个运算符都有自己的函数形式, 像…
本篇要学习的内容和知识结构概览 多态性 编译时的多态性称为静态联编. 当调用重载函数时, 在编译期就确定下来调用哪个函数. 运行时的多态性称为动态联编. 在运行时才能确定调用哪个函数, 由虚函数来支持. 静态联编中的赋值兼容性及名字支配规律 派生一个类的原因并非总是为了添加新的成员或成员函数, 有时是为了重新定义基类的成员函数. #define PI 3.14159 class Point { double x; double y; public: Point(double a, double…
本篇要学习的内容和知识结构概览 类及其实例化 类的定义 将一组对象的共同特征抽象出来, 从而形成类的概念. 类包括数据成员和成员函数, 不能在类的声明中对数据成员进行初始化 声明类 形式为: class 类名 { private: 私有数据和函数 public: 公有数据和函数 protected: 受保护的数据和函数 }; // 注意分号 无论是数据成员还是成员函数, 都是这个类的成员, 都具有一个访问权限, 如果没有关键字进行修饰, 则默认为private权限 声明一个类, 像这样: //…
本篇要学习的内容和知识结构概览 函数的参数及其传递方式 1. 函数参数传递方式 传值: 传变量值: 将实参内存中的内容拷贝一份给形参, 两者是不同的两块内存 传地址值: 将实参所对应的内存空间的地址值给形参, 形参是一个指针, 指向实参所对应的内存空间 传引用: 形参是对实参的引用, 形参和实参是同一块内存空间 2. 对象作为函数参数, 也就是传变量值 将实参对象的值传递给形参对象, 形参是实参的备份, 当在函数中改变形参的值时, 改变的是这个备份中的值, 不影响原来的值 像这样: void f…
一. 本篇要学习的内容和知识结构概览 二. 知识点逐条分析 1. 使用函数重载 C++允许为同一个函数定义几个版本, 从而使一个函数名具有多种功能, 这称之为函数重载. 像这样: 虽然函数名一样, 但是参数列表不一样, 一个求两个整型参数的最大值, 一个求三个整型参数的最大值. 2. 新的基本数据类型及其注意事项 a. void是无类型标识符, 只能声明函数的返回值类型, 不能声明变量 b. C++当中有bool类型, 而C中没有 c. C++的常量分为符号常量, 浮点常量, 整数常量 像这样:…
一. 本篇要学习的内容和知识结构概览 二. 知识点逐条分析 1. 混合型语言 C++源文件的文件扩展名为.cpp, 也就是c plus plus的简写, 在该文件里有且只能有一个名为main的主函数, 它作为程序的入口.  因为这个主函数的存在, 所以C++被称为混合型语言. 2. C++语言当中的注释 第一种: 单行注释, 从 // 开始到本行结束. 像这样: // 下面的代码是求最大值的 第二程: 多行注释, 从 /* 开始到 */ 结束. 像这样: /* 函数功能: 下面的代码是用来求最大…
注:资料整理自<Unity Shader入门精要>一书 一.渲染流程概念阶段:  应用阶段:(1)准备好场景数据:(如摄像机位置,物体以及光源等)   (2)粗粒度剔除(Culling):(把不可见物体剔除,不导入下一阶段)   (3)设置每个模型的渲染状态:(如材质.纹理.shader等),输出渲染图元(rendering primitives)(如点.线.三角面等几何信息)并传递至下一阶段 几何阶段:(1)在GPU上处理绘制几何所需要的相关操作(具体操作细分在随后的GPU流水线中介绍)  …
1.什么是AngularJs          AngularJs 诞生于2009年,由Misko Hevery 等人创建,后被Google收购,是一个优秀的Js框架,用于SPA(single page application)适用于以数据操作比较频繁的应用程序.基本操作思路与DOM和jQuery的"先查找元素再操作元素"不同,AngularJs是"创建数据.绑定数据.修改数据.更新数据"--一切操作都以数据位中心. 2.AngularJs的四大特性 ①采用MVC设…
什么是线程安全 当多个线程访问某个类时,不管运行环境采用何种调度方式或者这些线程如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的. 竞态条件 当某个计算的正确性取决于多个线程的交替执行时序时,那么就会发生竞态条件.换句话说就是正确的结果取决于运气. 数据竞争 数据竞争是指,如果在访问非final类型的域时没有采用同步来进行协同,那么就会出现竞争. 重入 由于内置锁是可以重入的,因此如果某个线程试图获得一个已由它自己持有的锁,那么这个…
1. 类的继承与派生 1.1 派生类的定义 (1) 定义规范 class 派生类名: 继承方式 基类1名, 继承方式 基类2名... { ...派生类成员声明; }; (2) 从以上形式上看可以多继承 (3) 继承方式规定了如何访问从基类继承的成员 (4) 继承的主要目的是实现代码的重用与扩充 (5) 派生类生成过程 ① 吸收基类成员 A. 继承后,派生类包含了基类中除构造和析构函数之外的所有成员.构造和析构函数需要重新定义 ② 改造基类成员 A. 通过继承方式来控制对基类成员的访问控制 B.…
课程<C++语言程序设计进阶>清华大学 郑莉老师) 基本概念 继承与派生的区别: 继承:保持已有类的特性而构造新类的过程称为继承. 派生:在已有类的基础上新增自己的特性(函数方法.数据成员)而产生新类的过程称为派生 被继承的已有类称为基类,派生出的新类称为派生类,直接参与派生出某类的基类称为直接基类,基类的基类甚至更高层的基类称为间接基类. 继承与派生的目的 继承的目的:实现设计与代码的重用. 派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对 原有程序的基础上增加新的特…
简介 此笔记为<Python编程:从入门到实践>中前 11 章的基础知识部分的学习笔记,不包含后面的项目部分. 书籍评价 从系统学习 Python 的角度,不推荐此书,个人更推荐使用<Python 基础教程>. 此书中关于 Python 基础知识的讲解较为简略,只能满足简单程序的编写,对 Python 的许多常用的内容都未提及,如类的魔法方法等. 目录 ch1 起步 ch2 变量和简单数据类型 ch3 列表简介 ch4 操作列表 ch5 if语句 ch6 字典 ch7 用户输入及w…
声明:本文整理借鉴金角大王的Python之路,Day1 - Python基础1,仅供本人学习使用!!! 入门知识拾遗 一.bytes类型 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进制,01234567 十进制,0123456789 十六进制,0123456789ABCDEF  二进制到16进制转换http://jingyan.baidu.com/album/47a29…
python编程:从入门到实践学习笔记 原文地址:https://blog.csdn.net/qq_35554125/article/details/79548192 [day 1]python编程:从入门到实践学习笔记-安装.变量和简单数据类型 [day 2]python编程:从入门到实践学习笔记-列表以及其操作 [day 3]python编程:从入门到实践学习笔记-if 语句(末附练习答案代码) [day 4]python编程:从入门到实践学习笔记-字典(末附练习答案代码) [day 5]p…
/*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识以后有机会再总结.*/ /*第一部分,webgl与three.js基础介绍,要求读者掌握JavaScript入门知识*/ //webgl原理:通过JavaScript语言在浏览器端生成glsl代码,把glsl代码送入显卡执行,把执行结果显示在浏览器中 //简单例程: //根据Tony Parisi著…
今天我们继续来学习C语言的入门知识点,第一课:C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记! 21. 输入 & 输出 当我们提到输入时,这意味着要向程序填充一些数据.输入可以是以文件的形式或从命令行中进行.C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中. 当我们提到输出时,这意味着要在屏幕上.打印机上或任意文件中显示一些数据.C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本文件或二进制文件中. 标准输出 C 语言把所有的设备都当作…
一.准备工作 更新yum库 yum update 下载相关依赖包 yum install wget -y yum install gcc gcc-c++ gcc-fortran kernel-devel -y 二.下载并安装mpi安装包 官网下载MPI 安装包(http://www.mpich.org/downloads/ )1.新建下载目录 mkdir /mpich-install 2.解压 tar -zxvf mpich-4.0.2.tar.gz 3.进入目录并编译安装 cd mpich-4…
最近在看Python编程:从入门到实践,这是这本书"项目3 Web应用程序"第18章的笔记.记录了django最基本的一些日常用法,以便自己查阅. 可能是我的这本书版本比较老,书上项目的代码直接跑跑不通,也有一些小小的错误.这里我做了一些修改. 基本用法 创建项目 django-admin startproject 项目名 . 创建数据库 python manage.py migrate 查看项目 python manage.py runserver 创建应用程序 python man…
在前两期的学习内容中,我们已经了解了Batch入门教程有关的知识和编程方法,如何编写和运行Windows Batch程序,脚本语言的入门方式等,今天我们将继续深入学习Batch入门教程之认识变量相关概念. 前期回顾  ◀Batch入门教程丨部署与Hello World(上) ◀Batch入门教程丨部署与Hello World(下) 进阶 我们在之前所接触到的三个指令仅仅是Batch中的冰山一角,一些比较重点的指令都会放在本节中进行讲述.在进阶内容中,您将会了解到变量.逻辑判断.调用与传参和函数这…
在上期分享的内容中,我们已经掌握了基础理论知识,今天我们将继续了解和学习与Windows Batch有关的知识和编程方法,如何编写和运行Windows Batch程序,脚本语言的入门方式等,从而能够更加顺利地投入到今后的开发和探究中. 上期内容回顾>>Batch入门教程丨部署与Hello World(上) 入门 入门,进入门,进入这扇门,进入这样一扇(门框+门板+门铃+门锁),使用脚的指定部位完成动作以进入主函数,kkkkk. 入门概述 入门是一切的起点,这些我们都知道.在入门这一章节中,您将…
百度网盘:Python编程:从入门到项目实践高清版附PDF免费下载 提取码:oh2g   第一部分 基础知识第1章 起步 21.1 搭建编程环境 21.1.1 Python 2和Python 3 21.1.2 运行Python代码片段 31.1.3 Hello World程序 31.2 在不同操作系统中搭建Python编程环境 31.2.1 在Linux系统中搭建Python编程环境 31.2.2 在OS X系统中搭建Python编程环境 61.2.3 在Windows系统中搭建Python编程…
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数据库连接池管理数据库. ☐ 将SQL语句硬编码到Java代码中,若SQL语句修改,需要重新编译Java代码,不利于系统维护. ☐ 将SQL语句配置在XML文件中,即使SQL变化,我们也不需要队Java代码进行重新编译. ☐ 向PreparedStatement中设置参数,对占位符号位置和设置参数值,…
Java编程入门知识   知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java的入门知识: 基础常识 软件开发,     人机交互方式,   常用的DOS命令 如见开发的概念 软件:一系列按照特定顺序的组织的计算机数据和指令的集合. 常见的软件:  QQ MSN  飞信  微信  支付宝.. 系统软件: 应用软件 什么是开发?软件开发就可以简单的理解为制作软件. 知识扩延:人…
玄魂 玄魂工作室 今天 之前开启了一个<Python黑客编程>的系列,后来中断了,内容当时设置的比较宽,不太适合入门.现在将其拆分成两个系列<Python黑客编程之极速入门>和<Python黑客编程之网络安全>,以便初学者有一个入门和提升的过程. 我们首先开启的是<Python黑客编程之极速入门>,考虑到学习质量的保证问题, 这次采用的是培训的方式,图文教程+课后练习+答疑+案例介绍+扩展阅读. 培训目前只面向我们知识星球内部成员(加入星球自动享受该课程权益…
1.前言 标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西.本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么. (本文同步发布于:http://www.52im.net/thread-2067-1-1.html) 2.关于作者   翟志军,个人博客地址:https://showme.codes/,Github:https://github.com/zacker330.感谢作者的原创分享. 作者的另一篇<即时通讯安全篇(…
本文原作者:“水晶虾饺”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.引言 好多小白初次接触即时通讯(比如:IM或者消息推送应用)时,总是不能理解Web短连接(就是最常见的HTTP通信了)跟长连接(主要指TCP.UDP协议实现的socket通信,当然HTML5里的Websocket协议也是长连接)的区别,导致写即时通讯这类系统代码时往往找不到最佳实践,搞的一脸蒙逼. 本篇我们先简单了解一下 TCP/IP,然后通过实现一个 echo 服务…
本文参考< Python 编程:从入门到实践>一书,作者: [ 美 ] Eric Matthes 第1章 起步 1.1     搭建python环境 在不同的操作系统中, Python 存在细微的差别. 1.1.1 Python 2和Python 3 在本书中,将指出 Python 2 和 Python 3 的重大差别.1.1.2 运行Python代码片段 1.1.3 Hello World程序 长期以来,编程界都认为刚接触一门新语言时,如果首先使用它来编写一个在屏幕上显示消息“Hello W…
CUDA(Compute Unified Device Architecture)的中文全称为计算统一设备架构.做图像视觉领域的同学多多少少都会接触到CUDA,毕竟要做性能速度优化,CUDA是个很重要的工具,CUDA是做视觉的同学难以绕过的一个坑,必须踩一踩才踏实.CUDA编程真的是入门容易精通难,具有计算机体系结构和C语言编程知识储备的同学上手CUDA编程应该难度不会很大.本文章将通过以下五个方面帮助大家比较全面地了解CUDA编程最重要的知识点,做到快速入门: GPU架构特点 CUDA线程模型…