跟着做的C++20教程-实例30-public 继承
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了跟着做的C++20教程-实例30-public 继承,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2092字,纯文字阅读大概需要3分钟。
内容图文
![跟着做的C++20教程-实例30-public 继承](/upload/InfoBanner/zyjiaocheng/602/192dd24f29244f42b18e58dc926cee61.jpg)
目录
实例概要
介绍public继承时,父类public、private、protected成员的不同表现。
实例代码
#include <iostream>
#include <string>
class Person
{
public:
int m_weight { 1 };
protected:
int m_height{ 2 };
private:
int m_age{ 3 };
public:
int getAge()
{
return m_age;
}
void setAge(int age)
{
m_age = age;
}
};
class Employee :public Person
{
public:
std::string m_department;
int getHeight()
{
return m_height;
}
void setHeight(int height)
{
m_height = height;
}
int getAge()
{
// return m_age; 不能直接使用父类私有属性
return Person::getAge(); //只能通过父类的public方法获取
}
void setAge(int age)
{
//m_age = age; return m_age; 不能直接使用父类private属性
Person::setAge(age); //只能通过父类的public方法修改
}
};
int main(int argc, char** argv)
{
Employee em;
em.m_weight = 77; //可以直接使用子类继承自父类的public属性
//em.m_height = 183; //不能直接使用子类继承自父类的protected属性
em.setHeight(183);
//em.m_age = 31; //不能直接使用子类继承自父类的private属性
em.setAge(31);
em.m_department = "Research and Development";
std::cout << "雇员年龄是" << em.getAge() << "岁,部门是" << em.m_department << ",身高" << em.getHeight() << "cm,体重是" << em.m_weight << "kg" << std::endl;
return 0;
}
运行结果
雇员年龄是31岁,部门是Research and Development,身高183cm,体重是77kg
实例解释
- public继承
public继承就是在继承时指定关键字public
,如实例中class Employee :public Person
。除了public
还有protected
、private
。 - 父类属性
- public属性
实例中父类Person
有一个public属性m_weight
。public属性可以在子类中、子类外进行访问和修改。因此实例中在main
函数中可以直接写em.m_weight = 77
和"cm,体重是" << em.m_weight << "kg"
。 - protected属性
实例中父类Person
有一个protected属性m_height
。protected属性的意思是可以在子类中访问和修改,但不能在子类外访问和修改。所以实例中可以在Employee
的setHeight()
、getHeight()
方法中直接使用m_height
。但不能在main()
函数中使用em.m_height = 183
。 - private属性
实例中父类Person
有一个private属性m_age
。private属性的意思是只能在父类中访问和修改。因此实例中不能在Employee
的getAge()
、setAge(int age)
中直接使用m_age
。只能通过父类的public方法Person::getAge()
和Person::setAge(age)
方法进行访问和修改。
- public属性
内容总结
以上是互联网集市为您收集整理的跟着做的C++20教程-实例30-public 继承全部内容,希望文章能够帮你解决跟着做的C++20教程-实例30-public 继承所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。