发布网友 发布时间:2022-05-09 22:41
共2个回答
热心网友 时间:2023-10-26 02:54
你对重载有误解,重载技术本来就是为了实现类对象之间可以直接运算而发明的。数字或者变量直接函数调用不就完了,根本不需要用到重载。
恰巧我年轻时候尝试写过3D游戏引擎,虽然最终没实现,但是基础类我还在,当时也是为了学习3D顶点变换原理,在win32空白框架上开发的,那我就复制矩阵类的部分代码给你看看,代码没优化过。
两个矩阵运算相乘(重载)用于创建复合矩阵,比如平移,旋转,缩放等等,方便之后再用模型的顶点与之变换,减少动画计算量。
直接传递顶点/矢量进行变换,不需要用重载。
传递顶点/矢量对象进行变换
热心网友 时间:2023-10-26 02:54
这个问题你可以采用两个重载函数来解决。
可以用一个类成员函数 + 一个友元函数:
一、类在前可以使用成员函数重载:
Matrix Matrix::operator*(int n)
{
// 实现代码
}
二、数字在前使用友元函数重载:
在类中加上声明
friend Matrix operator*(int n, Matrix &m);
类外加实现代码:
Matrix operator*(int n, Matrix &m)
{
// 实现代码
}