面向对象:封装 继承 多态
#include <iostream> #include <string> using namespace std; #define PI 3.14 //设计一个圆类,求圆的周长 class yuan { //访问权限 属性 行为 public: //包含属性和行为。行为一般用函数 int ban; double zhou() { return 2 * PI * ban; } }; int main() { //通过圆类 创建具体的圆(对象) yuan p1; p1.ban = 10; cout << "zhouchang为" << p1.zhou() << endl; return 0; }
设计学生类:
#include <iostream> #include <string> using namespace std; //设计一个学生类,属性有姓名和学号 //可以给姓名和学号赋值,可以显示学生的姓名和学号 //设计学生类 //类中的属性和行为 统一称为成员 //属性 成员属性 或 成员变量 //行为 成员函数 或 成员方法 //属性 class student{ public: //公共权限 //属性 string m_Nmae; //姓名 int ID; //行为 //显示姓名和学号 void showstudent(){ cout << "姓名:" << m_Nmae << "学号为" << ID << endl; } //通过行为给姓名赋值 void fuzhi(string name) { m_Nmae=name; } //同理。也可以给学号赋值 }; int main() { student p1; //实例化 //p1.m_Nmae = "掌上电脑"; p1.ID = 23; p1.fuzhi("张三"); p1.showstudent(); return 0; }
=======
struct和class 区别
在C++中,唯一的区别就是 默认的访问权限不同。
struct 默认权限为公共 public
class 默认权限为私有 private
#include <iostream> using namespace std; class C1 { int m_A; //默认 私有 }; struct C2 { int m_A; //默认权限 公共 }; int main() { C1 p1; //p1.m_A; 不可以访问 因为私有成员 C2 p2; p2.m_A;
#include <iostream> #include <string> using namespace std; //成员属性设置为私有 //优点1:将所有成员属性设置为私有,可以自己控制读写权限 //优点2:对于写权限。可以检测数据的有效性 class Person { public: //写姓名 void setname(string name) { m_Name = name; } //获取姓名 string getName() { return m_Name; } //获取年龄是一个只读的状态 int getAge() { m_Age = 0; //初始化为0 return m_Age; } private: //姓名 读写 string m_Name; //年龄 只读 int m_Age; //情人 只写 string m_Lover; }; int main() { Person p; p.setname("zhangsan"); //所以年龄不能写入 //p.getAge = 18; 报错 cout << "姓名为" << p.getName() << endl; system("pause"); return 0; }