|
1
6
它完全取决于您打算如何使用它,但在许多情况下,实现这一点的最干净的方法是实现转换构造函数:
(当然,您可以实现一个转换构造函数来从
|
|
|
2
2
首先,决定它们之间的转换是否真的是自然和直观的。在这种情况下,可以使用构造函数或成员函数。 但是,如果连接不是很自然,您可能希望使用一个单独的conversionutils类和转换方法或类似的方法。您不希望开始在类之间创建太多的依赖项,或者最终实现N*N转换。
注意“转换构造函数”也很重要,因为它们可以在您没有意识到的情况下被调用。例如,如果我有
|
|
|
3
1
如果我们简单地看一下Java(仅仅是为了信息,即使你使用C++): 假设类A是字符串,类B是整数(或double、boolean、et c)。Java库设计器将一个静态方法放在整数(“b”)中,称为GigType(“导入”),它接受字符串(“a”)并生成整数(“b”)。那就是你的情况2。 另一方面,在每个类(称为“a”)中,都有一个方法ToString(“export”)返回一个字符串(“b”)。那就是你的情况1。 所以,即使对于这样的基础课程,他们也决定使用不同的方法。我想这和@james mcnellis所说的一样:这要看情况而定。 |
|
|
4
0
您可以重载强制转换运算符,即运算符t()..返回t值。你是否应该这样做是另一回事。 |
|
|
5
0
我会采纳你的第三个建议。用于转换的单独转换器类。这样,您就不会直接将A与B或B与A耦合起来。无论是什么,A和B都有自己的职责。 转换器类C的职责是纯转换。每堂课都要对一件事负责,我认为这是件好事。我相信这是固体设计原则(单一责任原则)中的S。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |