|
|
1
4
您可以在派生类中实现该函数而不使其成为虚拟的。这将“隐藏”基类实现,并且可能是您所需要的,尽管一般不喜欢隐藏成员函数。 一个更好的方法可能只是使用一个不同的名称,尽管这可能会破坏接口的“纯度”。 最后,minor()是否可以作为自由函数而不是成员函数实现?然后您可以提供适当的重载,并在编译时调用正确的函数。这是与我打开的方法隐藏案例最接近的方法,但我怀疑它更普遍地被接受为“良好实践”。 |
|
|
2
3
如果你能简单地
…然后您可以根据需要添加其他版本。 |
|
|
3
1
如果您不使用这些类型的多态性,您可以非虚拟地重写派生类中的基类方法,以便它返回派生类对象。它将隐藏通常不需要的基类版本,但在您的情况下,它似乎是这样的。 或者,如果需要的话,可以使用不同类型矩阵的重载使这些成员函数不受函数模板的约束。(尽管模板化可能会自动处理这个问题。) |
|
|
4
0
模板专业化将起作用。您要做的是获取共享代码并将其放入基类中,然后从这两者继承。保护基础中的析构函数,这样就没有人可以通过强制转换到基础并尝试删除它来破坏您的概念。 就像这样:
还有其他方法,但这是最简单的方法之一。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |