小编snk*_*snk的帖子

如果派生中没有数据成员,C++仍然需要Virtual析构函数吗?

假设我有这个代码

class Base{
  public:
        int getVal();
  private:
         int a, b;
};

class Derived::public Base{
    public:
         void printVal();
};

int main(){
    Base *b = new Derived();
    delete b;    
}
Run Code Online (Sandbox Code Playgroud)

我知道虚拟析构函数会正确删除内容,但是使用基指针(没有虚拟析构函数)删除是不好的,即使派生类中没有虚函数也没有数据成员?如果这样做会发生什么?

c++ virtual-destructor

12
推荐指数
2
解决办法
1325
查看次数

设计问题:带有单一方法的 Java 类好吗?

我需要以下功能

Given two sorted lists, merge them
Run Code Online (Sandbox Code Playgroud)

我有这个骨架 Java 代码:

public class MergeLists{
   public List merge(List l1, List l2){
      List l3;
      // merge l1, l2 in to l3
      return l3;
   }

   public static void main(){
      // populate list1 and list2
      MergeLists ml = new MergeLists();
      List l3 = ml.merge(l1,l2);
   }
}
Run Code Online (Sandbox Code Playgroud)

这个单一的方法类是正确的方法吗?我觉得几乎是空的班级正在盯着我说这是糟糕的设计。我最初将 List L3 作为 MergeLists 的私有成员,但后来我想,merge(l1,l2) 可以用同一个对象多次调用,这要求 l3 是 merge(l1,l2) 的本地成员。我读到使用静态方法对于代码可重用性来说更糟糕。请指教。谢谢你。

java class

5
推荐指数
1
解决办法
3993
查看次数

标签 统计

c++ ×1

class ×1

java ×1

virtual-destructor ×1