网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
class A
{
public:
int ma;
void fun()
{
cout << mb << endl;
}
protected:
int mb;
private:
int mc;//自己或者友元才可以访问私有成员
};
class B : public A
{
public:
int md;
protected:
int me;
private:
int mf;
};
int main()
{
return 0;
}//
Derive(int data)
:Base(data), mb(data)
{
cout << "Derive()" << endl;
}
派生类怎么初始化基类继承来的成员变量呢?
1、派生类可以继承所有的成员(变量和方法),除构造函数和析构函数
解答(通过调用基类的构造函数
派生类的构造函数和析构函数,负责初始化和清理派生类部分
派生类从基类继承来的成员的初始化和清理由基类的构造和析构函数负责
》》》派生类对象构造和析构的过程是:
1、派生类调用基类的构造函数,初始化基类继承来的成员
2、调用派生类自己的构造函数,初始化派生类自己特有的成员
3、析构时,先调用派生类的析构函数,释放派生类成员可能占用的外部资源
4、调用基类的析构函数,释放派生类内存中从基类继承来的成员
基类与派生类
代码如下:
class Base
{
public:
Base(int data = 10) :ma(data) { cout << "base()" << endl; }
~Base()
{
cout << "~base()" << endl;
}
void show() { cout << "Base::show()" << endl; }//1
void show(int) { cout << "Base::show(int)" << endl; }//2
protected:
int ma;
};
class Derive :public Base
{
public:
Derive(int data = 20)
:Base(data), mb(data) {
cout << "Derive()" << endl;
}
~Derive()
{
cout << "~Derive()" << endl;
}
void show() { cout << "Derive::show()" << endl; }//3
private:
int mb;
};
int main()
![img](https://img-blog.csdnimg.cn/img_convert/44155bdc8d59d797d64638e7074a8e3a.png)
![img](https://img-blog.csdnimg.cn/img_convert/fe6c45b595b49216da2e8c40108c432d.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
668825)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**