我不明白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)
我想知道如何分配赋值构造函数和复制构造函数的内存?
InputStream DataInputStream和BufferedInputStream java 的区别?
我在虚函数中遇到问题:以下是一些代码示例:
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(),为什么它没有多态性.谢谢!