有关拷贝构造函数的疑问解决方法

有关拷贝构造函数的疑问
在C++中如果父类中使用拷贝构造函数,子类中能否使用拷贝构造函数,如果能,怎么使用?
希望给出详解。

------解决方案--------------------
可以的。没有什么限制的。
------解决方案--------------------
下面的代码供参考:
C/C++ code

#include <iostream>
using namespace std;

class Base
{
private:
    char* name;
public:
    Base(char* n)
    {
        int length = strlen(n) + 1;
        name = new char[length];
        memset(name, 0, length);
        strcpy(this->name, n);
        cout << "Base::constructor" << endl;
    }

    Base(const Base& base)
    {
        int length = strlen(base.name) + 1;
        name = new char[length];
        memset(name, 0, length);
        strcpy(this->name, base.name);
        cout << "Base::copy_constructor" << endl;
    }

    void print()
    {
        cout << name << endl;
    }

    virtual ~Base()
    {
        delete[] name; 
        cout << "Base::destructor" << endl;
    }
};

class Derived : public Base
{
private:
    char* nickname;
public:
    Derived(char* n, char* nn) : Base(n)
    {
        int length = strlen(nn) + 1;
        nickname = new char[length];
        memset(nickname, 0, length);
        strcpy(this->nickname, nn);
        cout << "Derived::constructor" << endl;
    }

    Derived(const Derived& derived) : Base(derived)    // 显式调用基类的copy constructor
    {
        int length = strlen(derived.nickname) + 1;
        nickname = new char[length];
        memset(nickname, 0, length);
        strcpy(this->nickname, derived.nickname);
        cout << "Derived::copy_constructor" << endl;
    }

    void dprint()
    {
        cout << "Name: "; 
        print();
        cout << "Nickname: " << nickname << endl;
    }

    ~Derived()
    {
        delete[] nickname;
    }
};

int main(int argc, char** argv)
{
    Base base("William");
    base.print();

    Base copy(base);
    copy.print();

    Derived derived("William", "Bill");
    derived.dprint();

    Derived dcopy(derived);
    dcopy.dprint();
    
    return 0;
}

------解决方案--------------------
class a
{
int t;
a(const a l){t=l.t;}
};
class b:public a
{
a n;
b(const b l):n(a){}//这里就通过函数参数初始化调用了父类的拷贝构造函数了,貌似拷贝构造函数在父类的私有成员里面,子类不能显示调用的
};