类的继承和不被继承与继承关系中的拷贝构造函数

本文讨论了C++中的类继承和访问控制。通过示例展示了如何使用`private`、`protected`和`final`关键字来控制类的继承和成员访问。还探讨了拷贝构造函数的三种情况,解释了在基类和派生类中定义拷贝构造函数的影响。
摘要由CSDN通过智能技术生成
class Person
{
    private:
     char _idPerson[20];
     char _name[20];
     int age;
public:
    Person()
{
     _idPerson[0]='\0';
      _name[0]='\0';
     _age=0;
     
}
};
class Student:public Person
{

   private:
    char
};

如何使一个类不被继承

class Object
{
   int value;
 private:
    Object(int x=0):value(x){}
};
class Base:public Object
{
    int num;
public:
    Base(int x):Object(x+10),num(x) {} //无法调用Object的私有设置的构造函数

};

 实现一个能被继承的类型,但是不能在外部函数中创建的对象类型

class Object
{
   int value;
 protected:
    Object(int x=0):value(x){}
};
class Base:public Object
{
    int num;
public:
    Base(int x):Object(x+10),num(x) {} //无法调用Object的私有设置的构造函数

};
int main()
{
   Object obj(10);  //不可以创建,protected限定函数不能被外部函数访问

}

实现一个不能被继承的类型。但是能在外部函数中创建对象的类型

class Object final  //final关键符限定该类不能被继承

{};

继承关系中拷贝构造函数

1.程序设计在基类和派生类中都没有定义拷贝构造函数;c++编译器将自动产生按位拷贝的拷贝构造函数;在派生类的拷贝构造函数的初始化列表中,加入基类拷贝构造函数的调用,是c++编译器合成的代码

2,。程序设计在基类中定义拷贝构造函数;而在派生类中没有定义拷贝构造函数;将会在派生类中自动产生按位拷贝的拷贝构造函数。并合成代码,调用基类的拷贝构造函数。

3.程序设计者在基类和派生类中都定义了拷贝构造函数;程序设计者在派生类中,没有指定调用基类的拷贝构造函数时。c++编译器合成的代码调用基类的缺省构造函数,如果基类中没有缺省构造函数,合成代码失败。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值