gpt4 book ai didi

c++ - 当声明/参数相同时如何重载构造函数/函数?

转载 作者:太空狗 更新时间:2023-10-29 19:51:26 25 4
gpt4 key购买 nike

<分区>

我想创建一个类来管理矩阵,但我遇到了构造函数问题。目的是找到调用 Matrix 对象的构造函数的最短方法,知道某些构造函数具有与保持清晰相同的 header 。这是我试图得到的想法:

Matrix id; // create identity matrix
Matrix scale(x, y, z); // create directly a scale matrix
Matrix translation(x, y, z) // create a translation matrix
...

在这里,所有参数都是float,所以我不能重载构造函数,我唯一看到的是使用模板,但仅针对那些特殊情况,我不知道该怎么做。

解决方案

最后我决定做一个像这样的抽象类:

class _Mat
{
public :
virtual ~_Mat(void) = 0;

// ...
}

class Mat : public _Mat
{
public :
Mat(void);
virtual ~Mat(void);

class Scale : public _Mat
{
public :
Scale(float x, float y, float z);
vitual ~Scale(void);

// ...
}

// ...
}

所有的都将被定义到 _Mat 中,而另一个类将只对它们的构造函数有用

最后,我们可以这样调用构造函数:

Mat id;
Mat::Scale scale(2, 2, 2);
// ...

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com