2 minefreeman minefreeman 于 2016.01.14 10:26 提问

有关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:因为打<>会不显示,所以上面的我用《》代替了....
希望有大神能为我解答,谢谢...

3个回答

CSDNXIAON
CSDNXIAON   2016.01.14 10:28

图形编程的基本概念即自定义
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

91program
91program   Ds   Rxr 2016.01.14 10:45

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

minefreeman
minefreeman 呃,好像是csdn的问题,打了但是不显示,我重新把<>换成了《》您能再帮我看看吗,先谢谢了
2 年多之前 回复
minefreeman
minefreeman   2016.01.14 10:51

template
struct tvec3
{
typedef T value_type;
typedef std::size_t size_type;
typedef tvec3 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
tvec3(A x, B y, C z) :
x(value_type(x)),
y(value_type(y)),
z(value_type(z))
{}
};

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
[转]C语言图形编程(四) -图形文本
一、图形文本函数    85. outtext() 当前位置显示字符串函数    86. outtextxy() 在(x,y)处显示字符串函数    87. sprintf() 格式化输出函数二、图形文本设置    88. settextstyle() 设置文本型式函数    89. settextjustify() 设置文本排齐函数    90. setusercharsize() 设置用户字符
c语言图形编程教程c语言图形编程教程
c语言图形编程教程c语言图形编程教程c语言图形编程教程c语言图形编程教程c语言图形编程教程c语言图形编程教程
[转]C语言图形编程(二) -图形显示
一、确定显示卡二、选择显示模式   三、图形显示    20. detectgraph() 显示卡检测函数    21. initgraph() 图形初始化函数    22. getdrivername() 获取图形驱动程序名的指针    23. getgraphmode() 获取图形模式函数    24. getmoderange()获取模式值范围函数    25. getmaxmode()获取
俄罗斯方块(C语言实现,用到了C语言的图形库)
C语言实现的俄罗斯方块游戏,运用到了C的图形库绘制了方块,里面有详细的代码及其部分的文档(绝对原创)
分类问题的数学定义
机器学习的任务大概可以分为分类和决策两类。当然,这两类问题并没有严格的界限。许多决策问题本质也是在分类。因为所谓决策,是根据当前的环境(输入),筛选出最优的策略。这个最优的策略可以看做是环境输入的类别。但是,决策问题与传统的分类问题不同。1. 通常分类问题预定的类别是有限个,而决策问题的策略集合可能无限。2. 一个输入的类别通常是确定的(即一个输入对应一个类别),可是在决策问题中,一个环境输入对应的
C语言图形编程.doc
C语言图形编程,C语言图形编程C语言图形编程……
C图形编程大全
C图形编程大全 C图形编程大全 C图形编程大全
C语言图形编程word版
C语言图形编程;C语言图形编程;C语言图形编程
C语言图形编程(非常详细)
C语言图形编程 C语言图形编程 C语言图形编程 C语言图形编程
[DOS]图形编程-图形模式初始化
 在DOS下进行图形编程1           首先是开发环境。使用完整版的TC3.0++,可以在这里下载。该版本包括完整的在线帮助文件,所有的文档资料。2           中文支持+拼音输入法。这里下载。包括中文系统和拼音输入法。想找一个天汇3.2完整版的没找到,暂时用这个了。3           重要的是要设置好编译环境参数。即选中菜单options>linker中的gr