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

来源:互联网 发布:温州淘宝运营 编辑:程序博客网 时间:2024/05/29 17:32

类体内:



        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(返回的是指针)。

 

4 0