
c语言下的封装
#define _CRT_SECURE_NO_WARNINGS #include#include #include struct Person { char mName[64]; int mAge; //PersonEat()c语言中struct里不能添加函数 }; void PersonEat(struct Person* p) { printf("%s 在吃饭n", p->mName); } void text01() { struct Person p1; strcpy(p1.mName, "张三"); PersonEat(&p1); } struct Dog { char mName[64]; int mAge; }; void DogEat(struct Dog* dog) { printf("%s 在吃粮n", dog->mName); } void text02() { struct Dog d; strcpy(d.mName, "旺财"); DogEat(&d); struct Person p1; strcpy(p1.mName, "老王"); DogEat(&p1); } int main() { text01(); text02(); } //c语言封装 属性和行为分开处理了,类型检测不够
c++下的封装
#define _CRT_SECURE_ND_WARNINGS #includeusing namespace std; struct Person { char mName[64]; int mAge; void PersonEat() { cout << mName << "在吃饭" << endl; } }; struct Dog { char mName[64]; int mAge; void DogEat() { cout << mName << "在吃粮" << endl; } }; //c++中的封装 严格类型转换检测 让属性和行为绑定在一起 //属性和行为作为一个整体来表示生活中的事物 //控制权限 public protected private void text01() { Person p1; strcpy(p1.mName, "老王"); p1.PersonEat(); //p1.DogEat(); } //struct 和class 是一个意思 唯一的不同 默认权限 ,struct是pulic,但是class默认权限是private class Animal { private: //如果不声明权限,默认的权限是private void eat() { mAge = 100; }; int mAge; public: int mHeight; protected://保护权限 类内部可以访问,(当前类的子类可以访问),类外部不可以访问 int mWeight; void setWeight() { mWeight = 100; }; }; //所谓私有权限 就是私有成员(属性,函数)在类内部可以访问,类外部不可以访问 //公共权限在类外部内部都可以访问 void text02() { Animal an; //an.eat(); //an.mAge();//私有不可以访问到 an.mHeight = 100;//公有权限在类外部可以访问 //an.mWeight=100;//保护权限 在类外部不可访问到 } //public 类内 类外 都可以访问 //protected 类内可以访问,类外不可以访问(子类可以访问) //private 类内可以访问,类外不可以访问(子类不可以访问) int main() { system("pause"); return EXIT_SUCCESS; }
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)