类体内:

inline floatx() const { return e[0]; }

类体内定义成员函数x()。

const:表示该函数不修改类对象。

inline:表示该函数在程序中每个调用点上被内联地展开。

inlineconst vec3&operator+()const { return *this; }

类体内定义成员函数operator+()。

operator+():操作符重载。该类函数的函数名有关键字operator和预定操作符组层。只要知道这时函数名很奇怪的函数既可以啦。

const(右边这个):表示该函数不修改类对象。

&:表示函数返回的是引用类型,此处表示返回的是一个vec3对象的引用。

const(左边这个):表示函数返回不可被修改,此处表示返回的vec3对象的引用不可被修改。

inline:表示该函数在程序中每个调用点上被内联地展开。

inline vec3&operator+=(const vec3 &v2);

类体内声明成员函数operator+=()。

operator+=():操作符重载。该类函数的函数名有关键字operator和预定操作符组层。只要知道这时函数名很奇怪的函数既可以啦。

&(右边这个):形参是引用类型。当把参数声明为引用时,传递的是形参本身。此时不需要将形参的值拷贝(赋值)给实参,可以直接操纵形参。和指针类似。

const:修饰函数参数。表示函数体中不能修改参数的值(包括参数本身的值或者参数其中包含的值)

&(左边这个):函数返回引用类型。当函数返回引用类型时,没有复制返回值。相反,返回的是对象本身。

类体外:

inline vec3& vec3::operator+=(const vec3&v)

{

e[0] += v.e[0];

e[1] += v.e[1];

e[2] += v.e[2];

return *this;

}

vec3:::表示类体外定义的operator+=()是vec3类的成员函数。“::”是域解析操作符。表示某个成员属于某个类,某个类的某个成员。

this:指向被调用对象的指针。

*this:由于函数定义的函数返回是引用类型,即返回的不是值或者指针,而是对象本身。所以,此处需要return *this来返回对象本身,而不是return this(返回的是指针)。

问题十:【总结】解决了问题四~问题九,vec3这个类的代码应该都能看懂了相关推荐

  1. 小学生都能看懂,彻底解决环境搭建难题,一步一截图,再无VMware网络难题

    小学生都能看懂,彻底解决环境搭建难题,一步一截图,再无VMware网络难题 原创 韦东山 百问科技 1周前 上周四我们预告了这周要发布环境搭建的终极解决方案,经过一周的努力,终于写好了文档,Ubunt ...

  2. 人人都能看懂的Spring源码解析,Spring如何解决循环依赖

    人人都能看懂的Spring源码解析,Spring如何解决循环依赖 原理解析 什么是循环依赖 循环依赖会有什么问题? 如何解决循环依赖 问题的根本原因 如何解决 为什么需要三级缓存? Spring的三级 ...

  3. 狗都能看懂的变化检测网络Siam-NestedUNet讲解——解决工业检测的痛点

    1.问题介绍 工业检测 如今深度学习的发展如火如荼,各类神奇的技术如人脸识别.换脸技术啥的,似乎什么问题都只需要Deep Learning一下就可以解决了.但这都是属于民用级别的技术,而真正想要在实际 ...

  4. 利用计算机解决古代数学问题鸡兔同笼,古代趣味数学:鸡兔同笼的4种算法,你都能看懂吗?...

    鸡兔同笼是中国古代的数学名题之一,出自<孙子算经>.书中是这样叙述的:"今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?"这四句话的意思是:有若干只鸡兔同在一个 ...

  5. 女朋友都能看懂,Spring如何解决循环依赖?

    介绍 先说一下什么是循环依赖,Spring在初始化A的时候需要注入B,而初始化B的时候需要注入A,在Spring启动后这2个Bean都要被初始化完成 Spring的循环依赖有两种场景 构造器的循环依赖 ...

  6. 你女朋友都能看懂的“三握四挥”

    今天,我们来说一下这个面试中经常问到的"三握四挥".不过,我们不从技术层面来说,毕竟对于小白来说,弄的太高大上,未必就是好的.我将以全国(梵蒂冈)最简单的方式来说这个问题. 首先, ...

  7. MATLAB新手简明使用教程(四)——斐波那契数列——新手来看,保证看懂。

    前期回顾 在上一篇我们学习了下面 的知识点: 使用roots函数求一元二次方程的根. 使用solve函数求方程的根. 使用inline函数和ezplot函数一起绘制函数图形. 使用 fzero 函数和 ...

  8. 解决SourceTree每一次向origin远程分支push代码时都需要输入密码的问题

    1,描述 一般情况下使用HTTPS以及SSH方式都可以从远程分支clone克隆代码到本地环境. 但是HTTPS的方式因为不存在密钥因此就会存在每次提交或者是push代码时就会存在输入密码的问题.这对于 ...

  9. Python基础十五:面向对象编程四:高级特性

    Python基础十五:面向对象编程四:高级特性 Python基础系列内容为学习廖雪峰老师Python3教程的记录,廖雪峰老师官网地址:廖雪峰Python3教程 Author:yooongchun Em ...

最新文章

  1. razor html帮助器,在 ASP.NET 网页(Razor)网站中创建和使用帮助器 | Microsoft Docs
  2. 基于C++实现线程池加速
  3. 爬取最好大学网站大学排名
  4. java引用类的关键字_java中定义类通常使用的关键字有哪些
  5. 「offer来了」从基础配置到高级配置,16大知识点带你巩固webpack知识体系
  6. npm 编译打包vue_从零到一教你基于vue开发一个组件库
  7. 加载java ie停止工作_打开网页,IE浏览器提示Internet Explorer 已停止工作什么原因?怎么解决?...
  8. 剑指offer之数据流中的中位数
  9. SQL数据库: 增删改 精确查询 数据排序 数据库入门篇
  10. FontLab v7 7.2.0 字体编辑器
  11. 2018年传智博客黑马程序员python人工智能培训就业班视频下载
  12. 计算机二级C语言选择题怎么做?要注意些什么?(易错点难点总结笔记)
  13. Android 车载应用开发与分析(5) - CarLauncher(一)
  14. 怎么把u盘做成启动盘装系统?
  15. 二维码美化策略——QArt Codes
  16. 软件测试周刊(第32期):沙漠中藏着一口井
  17. 深度学习初学者必须知道的25个专业名词
  18. iOS内容含有隐藏功能、第三方支付等被拒4次的心路历程
  19. 2876: [Noi2012]骑行川藏 - BZOJ
  20. 常见互联网slb方案

热门文章

  1. 欧几里得和扩展欧几里得
  2. 算法分析-插入排序INSERT_SORT与选择排序SELECT_SORT【线性方法】
  3. oracle 体系结构初步认识(一)
  4. 【异或】LeetCode 136. Single Number
  5. 由A* = A^T推导问题
  6. 树莓派4B安装ffmpeg的方法
  7. sqlserver事务怎么开启 怎么提交 怎么回滚
  8. 微信小程序---家庭记账本开发(三)
  9. 20181211作业
  10. 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表