代码之家  ›  专栏  ›  技术社区  ›  anon

析构函数还是解构函数?

  •  13
  • anon  · 技术社区  · 14 年前

    在我的日常生活和阅读书籍时,我看到了“毁灭者”和“解构主义者”。

    但是这个方法的正确名称是什么?

    5 回复  |  直到 7 年前
        1
  •  16
  •   Sarfraz    14 年前

    它是 析构函数 用于在对象即将死亡时清理这些东西。如果在对象将被移除/死亡时指定,则会自动调用它。

    更多信息:

    http://en.wikipedia.org/wiki/Destructor_%28computer_science%29

        2
  •  9
  •   Ralph    14 年前

    如果你引用OOP,则使用析构函数。解构主义者 World of Warcraft ;-)

        3
  •  4
  •   Pontus Gagge    14 年前

    析构函数是最常见的术语(解构函数听起来像是本地用法:我在某种程度上喜欢它,因为它指出了与构造函数的对称性)。

    但是这些东西在某种程度上是特定于语言的,因为不同的OO语言在实例的生命周期中有不同的模型。以c为例,其中 instead of destructors 你有 finalizers 执行担保薄弱, supplemented 按支持的语言 Dispose() 提供确定性的模式。

        4
  •  2
  •   Mijin    14 年前

    “析构函数”确实是正确的术语。 我在旧书中看到过“解构主义者”,在正确的术语上似乎有一段时间的争论,但毁灭者似乎已经胜出。

    至于wiki或wow所说的解构的轻率回答:试着在标准字典中查找“析构函数”。显然,这是一种摧毁偏离轨道的空中导弹或运载火箭的装置。

        5
  •  1
  •   LW001 Rohan Muhammad    7 年前

    正如其他人已经解释过的那样, destructor 用于清理对象。

    C 7中有一个新功能,可以称为 deconstructor :

    class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
    
        public void Deconstruct(out string firstName, out string lastName)
        {
            firstName = FirstName;
            lastName = LastName;
        }
    }
    
    var person = new Person { FirstName = "John", LastName = "Smith" };
    var (localFirstName, localLastName) = person;
    

    此功能的常见名称是 deconstruct method 或者简单地 deconstruction 但我在 official msdn blog 称之为 解构主义者 (重点是我的):

    有构造函数和 解构主义者 以这种方式被_对称__。