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

C++中那些危险的习语和用法在C语言中是可以避免的吗?[关闭]

  •  2
  • prosseek  · 技术社区  · 14 年前

    在萨特的文章里 Write What You Know, and Know What You Write

    T& T::operator=( const T& other )
    {
      if( this != &other )
      {
        this->~T();
        new (this) T(other);
      }
        return *this;
    } 
    

    C#能解决这类危险案件吗?C语言比C++有更好的编程语言吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Ben Voigt    14 年前

    这种特别的丑陋(我不认为它是惯用的)在C#中是不可能的,因为 operator = 无法在C中重新定义。这并不能让C更好——在那个时候重新定义是有意义的 = ,你不能,所以你需要一个变通方法。