c++面向对象的三大特性:封装,继承,多态

c++万事万物都可以作为对象,对象上有其属性和行为
类中的属性和行为都叫做类的成员,
成员属性和成员表变量都是指类中的属性
成员函数和成员方法都都是指类中的方法

具有相同属性的对象,抽象为一个类

封装

意义

封装是c++的三大特性之一
封装的意义:
将属性和行为作为一个整体,表现生活中的事务
将属性和行为加以权限控制
设计类的时候,属性和行为写在一起,表现事务
语法:class 类名{ 权限:属性/行为}

  1. //写一个圆类
  2. #include<iostream>
  3. #define PI 3.14
  4. using namespace std;
  5. class cir{
  6. //访问权限
  7. public://公共权限
  8. int r;
  9. double calculateZC(){
  10. return PI*2*r;
  11. }
  12. };
  13. int main(void){
  14. //创建一个具体的对象
  15. cir C1;
  16. C1.r = 10;
  17. cout<<"周长 "<<C1.calculateZC()<<endl;
  18. }
  1. #include<iostream>
  2. #include<string>
  3. //#define PI 3.14
  4. using namespace std;
  5. class student{
  6. //访问权限
  7. public://公共权限
  8. string name;
  9. string id;
  10. void show(){
  11. cout<<"name: "<<name<<"ID: "<<id<<endl;
  12. }
  13. };
  14. int main(void){
  15. //创建一个具体的对象
  16. student s1;
  17. s1.name = "张三";
  18. s1.id = "001";
  19. s1.show();
  20. }


也可以通过行为来给属性赋值

  1. #include<iostream>
  2. #include<string>
  3. //#define PI 3.14
  4. using namespace std;
  5. class student{
  6. //访问权限
  7. public://公共权限
  8. string name;
  9. string id;
  10. void show(){
  11. cout<<"name: "<<name<<"ID: "<<id<<endl;
  12. }
  13. void set_name(string s_name){
  14. name = s_name;
  15. }
  16. };
  17. int main(void){
  18. //创建一个具体的对象
  19. student s1;
  20. s1.set_name ("张三");
  21. s1.id = "001";
  22. s1.show();
  23. }

属性

类在设计时,可以把属性和行为放在不同的权限下加以控制

  • public 公共权限 类的内外都可以访问
  • protected 保护权限 类内可以访问,类外不可以访问 子类也可以访问
  • private 私有权限 **类内可以访问,类外不可以访问 子类不可以访问**

**

c++中class和struct的区别

c++中class 和 struct唯一的区别是默认的访问权相比不同

  • struct默认属性是公共 // 在c++中struct可以写函数,在C语言中不可以
  • class默认属性是私有