1.包装的意义
#include<iostream> 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<iostream> 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<iostream> using namespace std; #include<string> 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<iostream> 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; }