j继承

本文深入探讨了C++中对象的组合与继承概念,通过具体实例解析了类的构造与析构过程,以及成员函数的重写与访问控制。文章详细说明了如何在C++中实现对象的复用,提供了理解类设计的重要视角。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象组成

组合

  • 对象组成对象
class A
{
public:
    A::A(int i):b(i){};
private:
    B b;
}
//先初始化,后构造
class A
{
public:
    A::A(int i){b.set(i)};//前提必须有默认值
private:
    B b;
}
//执行构造后又执行幅值,

继承

  • 类组成新的类
  • 父类构造先执行,子类析构先执行
  • 如果子类有与父类相同的函数,父类的将被屏蔽包括他的重载函数,
  • protected 只供子类使用,相当于子类的private,并不提供对象直接使用

 #include<iostream>

class Person
{
private:
    int weight;
    int lenght;
    int age;
    int sex;
public:
    Person(int i,int j,int k,int h):weight(i),lenght(j),age(k),sex(h),sceret(5)
    {std::cout<<"Person()";};
    void setage(int i){age=i;}
    void setsex(int i){sex=i;}
    void setw(int i ){weight=i;}
    void setl(int i){lenght=i;}
    void print()
    {
        std::cout<<sex<<std::endl;
    }
    void print(std::ostream& oh)
    {
        oh<<sceret<<std::endl;
    }
    void set(int i)
    {sceret=i;}
protected:
    int sceret;



};
class Student:public Person
{
public:
    Student(int i,int j,int x,int y):
    Person(i,j,x,y)
    {

    }
    void print()
    {
        std::cout<<sceret<<std::endl;

    }
};

int main()
{
    Student A(0,1,2,3);
    A.print();
    A.set(6);
    A.Person::print(std::cout);  //被屏蔽后使用::
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值