注册 登录
编程论坛 C++教室

new 看不懂

jjg 发布于 2009-10-21 16:35, 504 次点击
#include <iostream.h>

class A
{
public:
    A(const char *s){cout<<s<<endl;}
    ~A(){}
};
class B:virtual public A
{
public:
    B(const char *s1,const char *s2):A(s1)
    {
        cout<<s2<<endl;
    }
};
class C:virtual public A
{
public:
    C(const char *s1,const char *s2):A(s1)
    {
        cout<<s2<<endl;
    }
};
class D:public B,public C
{
public:
    D(const char *s1,const char *s2,const char *s3,const char *s4)
        :B(s1,s2),C(s1,s3),A(s1)
    {
        cout<<s4<<endl;
    }
};
void main()
{
    D *ptr=new D("class A","class B","class C","class D");//这里看不懂,没有见过这种表示方法。还有就是ABCD分别对应s1s2s3s4,这是怎么来的
    delete ptr;
}




1 回复
#2
小J2009-10-21 17:30
这里是重新分配一块内存空间!
1