小编ala*_*hen的帖子

赋值运算符和复制构造函数之间有什么区别?

我不明白C++中赋值构造函数和复制构造函数之间的区别.它是这样的:

class A {
public:
    A() {
        cout << "A::A()" << endl;
    }
};

// The copy constructor
A a = b;

// The assignment constructor
A c;
c = a;

// Is it right?
Run Code Online (Sandbox Code Playgroud)

我想知道如何分配赋值构造函数和复制构造函数的内存?

c++ memory

95
推荐指数
5
解决办法
7万
查看次数

java中的`InputStream``DataInputStream`和`BufferedInputStream`的区别?

InputStream DataInputStreamBufferedInputStream java 的区别?

java

21
推荐指数
2
解决办法
3万
查看次数

C++中复制对象的动态绑定

我在虚函数中遇到问题:以下是一些代码示例:

class A
   {
      public : virtual  void print(void)
           {
              cout<< "A::print()"<<endl;
           }
    };
 class B : public A
    {
      public : virtual void print(void)
           {
               cout<<"B::print()"<<endl;
           }
    };
 class C : public A
    {
      public : void print(void)
            {
               cout<<"C::print()"<<endl;
            }
     };
  int main(void)
     {
         A a,*pa,*pb,*pc;
         B b;
         C c;
         pa=&a;
         pb=&b;
         pc=&c;

         pa->print();
         pb->print();
         pc->print();

         a=b;
         a.print();
         return 0;
       }
Run Code Online (Sandbox Code Playgroud)

结果:A :: print()B :: print()C :: print()A :: print()

我知道它是一个多态,并且知道有一个名为virtual-function-table的表,但我不知道它是如何实现的,并且

   a=b;
   a.print();
Run Code Online (Sandbox Code Playgroud)

结果是:A :: print()不是B :: print(),为什么它没有多态性.谢谢!

c++ virtual-functions dynamic-binding

0
推荐指数
1
解决办法
884
查看次数

标签 统计

c++ ×2

dynamic-binding ×1

java ×1

memory ×1

virtual-functions ×1