MineFreeman 2016-01-14 02:26 采纳率: 0%
浏览 1574

有关C++图形编程中模板定义的问题

template 《typename T》
struct tvec3
{
typedef T value_type;
typedef std::size_t size_type;
typedef tvec3《T》 type;
value_type x;
value_type y;
value_type z;
size_type length() const
{
return 3;
}
value_type const & operator const
{
assert(i < this->length());
return (&x)[i];
}
inline tvec3() :
x(value_type(0)),
y(value_type(0)),
z(value_type(0))
{}
template 《typename A, typename B, typename C》
tvec3(A x, B y, C z) :
x(value_type(x)),
y(value_type(y)),
z(value_type(z))
{}
};

如上面的代码,是从网上找到的。这里用模板定义了一个3维向量,不明白的地方是,既然struct了tvec3,为什么在里面的typedef还能定义tvec3<T>,这里的tvec3表示的什么呢?是默认构造函数吗?最后一个tvec3(A x, B y, C z)是重载吗?
PS:因为打<>会不显示,所以上面的我用《》代替了....
希望有大神能为我解答,谢谢...
  • 写回答

2条回答

  • 91program 博客专家认证 2016-01-14 02:45
    关注

    这里与一般 Struct 不同的是 模板 的使用。
    typedef 只是一个声明,你可以将它展开成具体的定义。可能是你贴出来的代码有问题吧,tvec3 在代码中没有。

    评论

报告相同问题?

悬赏问题

  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器