锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

05c++类和对象之封装

时间:2023-08-18 06:37:00 贴片电容cl05c040cb

1.包装的意义

#include using namespace std;  const double pi = 3.14;  class circle {  //访问权限  // 公共权限 public:   //属性  // 半径  int m_r;    //行为  ///通常用函数表达  double calculate()  {   return 2 * pi * m_r;  } };  int main01() {  circle c1;  c1.m_r = 10;  cout << c1.calculate() << endl;    return 0; }

2.包装访问权

#include using namespace std;  //访问权限  //公共权限 public     可访问成员类  也可以访问类外 //保护权限 protected  可访问成员类  不能访问类外 //私有权限 private   可访问成员类  不能访问类外  class person { public:  string m_name;  protected:  string m_car;  private:  int m_password;//银行卡密码 public:  void func()  {   m_name = "张三";   m_car = "法拉利";   m_password = 123456;  } };  int main() {  person p1;  p1.m_name = "李四";  p1.func()    return 0; }

3、class和struct的区别

  • struct 默认权限为公众
  • class 默认权限为私有

4、 成员属性私有化

#include  using namespace std; #include class person { public:  //设置名称  void setname(string name)  {   m_name = name;  }  //获取名称  string getname()  {   return m_name;  }  //设定年龄  void setage(int age)  {   if (age < 0 || age>150) ////对于写即设置,可以检测数据的有效性   {    m_age = 0;    return;   }   m_age = age;  }  //获得年龄  int getage()  {   return m_age;  }   void setlover(string lover)  {   m_lover = lover;  } private:  string m_name;  int m_age;  string m_lover; };   int main() {  person p2;  p2.setname("张三");  cout << p2.getname() << endl;   p2.setage(10);    cout << p2.getage() << endl;   p2.setlover("女朋友");    return 0; }

5、案例

点与圆的关系

#include using namespace std; #include"circe.h" #include"point.h" //class point //{ //public: // void setx(int x) // { //  m_x = x; // } // int getx() // { //  return m_x; // } // void sety(int y) // { //  m_y = y; // } // int gety() // { //  return m_y; // } //private: // int m_x; // int m_y; //};  //class circe //{ //public: // void setr(int r) // { //  m_r = r; // } // int getr() // { //  return m_r; // } // void setcenter(point center) // { //  m_center = center; // } // point getcenter() // { //  return m_center; // } //private: // //半径 // int m_r; // point m_center; //};  void isincirce(circe& c, point& p) {  int rdistant = c.getr() * c.getr();  int distant =   (c.getcenter().getx() - p.getx()) * (c.getcenter().getx() - p.getx())    (c.getcenter().gety() - p.gety()) * (c.getcenter().gety() - p.gety());  if (distant == rdistant)  {   cout << "点在圆上" << endl;  }  else if (distant > rdistant)  {   cout << "点在圆外" << endl;  }  else  {   cout << "点在圆内" << endl;  } } int main() {  //定义圆的半径  circe c;  c.setr(10);   定义圆心  point center;  center.setx(10);  center.sety(0);   ///以圆心为圆的一部分  c.setcenter(center);   point p;  p.setx(20);  p.sety(0);   isincirce(c, p);  return 0; } 

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章