gpt4 book ai didi

c++ - C++ 中的值语义技巧

转载 作者:搜寻专家 更新时间:2023-10-31 01:17:49 25 4
gpt4 key购买 nike

除了 C++(因为他有运算符重载)之外,您是否知道另一种可以执行(或在最坏情况下模拟)“值语义”的 OOP 语言?

最佳答案

在 C# 中,如果您将“对象”定义为 struct,它具有值语义。如果你将它定义为一个 class 它有引用语义(除非你让它不可变,比如 string,那么它的语义更类似于值一)。

我要补充一点,打破这种“隐式”语义很容易。

struct MyStruct
{
public StringBuilder SB;
}

MyStruct a = new MyStruct();
a.SB = new StringBuilder();

MyStruct b = a;

现在你已经破坏了语义,因为 ab “指向”同一个引用。

关于c++ - C++ 中的值语义技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7776523/

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