相关疑难解决方法(0)

何时使用虚拟析构函数?

我对大多数OO理论有了深刻的理解,但让我困惑的一件事是虚拟析构函数.

我认为无论什么以及链中的每个对象,析构函数总是会被调用.

你什么时候打算让它们成为虚拟的?为什么?

c++ polymorphism shared-ptr virtual-destructor

1420
推荐指数
13
解决办法
66万
查看次数

在什么情况下调用C++拷贝构造函数?

我知道c ++中的以下情况,其中将调用复制构造函数:

  1. 当为现有对象分配其自己的类的对象时

    MyClass A,B;
    A = new MyClass();
    B=A; //copy constructor called 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果函数接收作为参数,按值传递,则为类的对象

    void foo(MyClass a);
    foo(a); //copy constructor invoked
    
    Run Code Online (Sandbox Code Playgroud)
  3. 当函数返回(按值)类的对象时

    MyClass foo ()
       {
          MyClass temp;
          ....
          return temp; //copy constructor called
       } 
    
    Run Code Online (Sandbox Code Playgroud)

请随时纠正我所犯的任何错误; 但是如果有任何其他情况需要调用复制构造函数,我会更好奇.

c++ constructor copy-constructor visual-c++

30
推荐指数
5
解决办法
3万
查看次数