c++中只包含了基本数据类型以及string,但是有些数据无法表示 如:王者荣耀的英雄 制作英雄类:1、属性,2、功能 1、名字,生命值,魔法值,暴击概率 2、说话,攻击敌人 struct 类型名{ 创建属性(创建变量) 创建功能(创建函数) }; struct Hero{ string name; int b; int m; double bj; void speak(){ cout<<"嘿小鬼"; } void att(Hero b){ cout<<name<<"攻击了"<<b.name; } }; 创造类型: struct 结构体 权限默认全是公有的,所以可以通过变量名在主函数中调用里面的属性和行为 公有public > 保护protected > 私有private class 类 权限默认全是私有的,只能在类内调用 class与struct 的语法完全相同,但是需要提前设置权限 class stu{ public: string name; int age; int m,y,e; }; 与 struct stu{ string name; int age; int m,y,e; }; 完全相同 class stu{ string name; int age; int m,y,e; }; 与 struct stu{ private: string name; int age; int m,y,e; }; 完全相同 class stu{ private: string name;//封装,保护数据 public: void setname(string a){ name = a; } string getname(){ return name; } }; int main(){ stu s; string n; cin>>n; s.setname(n); cout<<s.getname(); } union 联合体 union 类名{ 属性1; 属性2; }; 多人穿一条裤子 union stu{ string name; int id; int age; }; int main(){ stu s; cin>>s.name;//hello 空间存的就是hello cout<<s.id;//hello cout<<s.age;//hello cin>>s.id;//98765 空间存放的就是98765,hello被顶掉 cout<<s.name;//98765 } 展示一段union代码,问占用空间多大 union a{ int a; double b; char c; }; a e;//问e占用多大空间(多少字节),以最大单个变量为准(选穿裤子最胖那个) (责任编辑:admin) |