![]() |
1
4
晚上睡个好觉之后,我认为最好的答案是使用一个指向常量值的非常量指针——毕竟这些都是您试图捕获的语义。 |
![]() |
2
8
我认为您真正想要的是拥有一个内部数据结构,您可以轻松地在对象之间进行交换。例如:
这保持了
|
![]() |
3
3
一个好的设计原则是把你的对象设计成 不变的 . 这意味着对象一旦创建就不能更改。要“更改”对象,必须复制该对象并确保更改所需的元素。 也就是说,在这种情况下,您应该考虑使用复制构造函数来复制要交换的对象,然后实际交换对该对象的引用。我可以理解,仅仅改变引擎盖下对象的元素是很诱人的,但是最好是复制一个对象并用 新建 对象。这能让你避开任何便秘。 希望这有帮助。 |
![]() |
4
1
我建议您使用指向实例的指针。指针交换比
唯一的方法
互换
常量值是创建另一个对象,或者
给出了一个结构:
我的理解是你想交换
也许你需要重新考虑你的设计。 |
![]() |
5
0
imho您必须考虑不交换const成员。 我认为你可以考虑在你的方法中使用反射。所以你不需要维护函数。 |
![]() |
6
0
这就是为什么
编辑: 好吧,我承认-警察局根本不是为这个问题而设的。这可能适用于你的编译器,但你不能指望它,如果恶魔从你鼻孔里飞出来,请不要怪我。 |
![]() |
7
0
这是未定义的行为。 我的解释,举例来说:
假设您创建一个类型为的对象
代码中使用的每个部分
*我只是假设这是不可能验证的,因为这似乎是中止问题不可决定性的延伸。 |