front record
真的要学好英语,不要中途放弃,维持这种状态,即鼓励我自己也鼓励陌生人,当你看到英文注释的时候,请不要划走,耐着性子看完,即便被人嘲笑中式英文,那又怎么样,总比只会26个字母要强,坚持下去,bear up。我的笔记帮助我温习也可以略微帮助到别人
hello,ladies and gentlemen
today we"ll talk about C++ encapsulation
let's start with the following code
struct person//创建一个名字为person的结构体
{
char name[32]//声明一个字符数组
int age;//声明一个int类型的变量
void personEat()//声明一个无参数的成员函数
{
cout<<name<<"在吃人饭"<<endl;//函数方法
}
struct dog
{
char name[32];
int age;
void dogEat()
{
cout<<name<<"在吃狗饭<<endl;
}
};
C++ encapsulation idea:attribute and behavior as a whole,show things in life
added permission control attribute and behavior
let's move on
void test()
{
struct person p;
strcpy(p.name,"cat")//这里是一个难点,尤其对于初学者而言,strcpy是一个拷贝字符串的函数,,左边是拷贝到哪里去的,右边是被拷贝的,也就是吧cat这个字符拷贝到name那个数组里头
p.personEat()对象访问了结构体的函数。
}
let‘s talk about struct and class
class default permission is private permission,but struct default permission is public permission.
这俩个没什么大的区别,class多了个权限,分别是
public 公共权限,成员,类内,类外都可以访问到,就像马路上的水泥一样,谁都可以踩一脚。
private 私有权限 ,成员 类内可以访问,类外不可以访问,在继承中,儿子不可以访问你父亲的protected的权限内容。
protected 保护权限,成员类内可以访问,类外不可以访问,在继承中,儿子可以访问父亲的protected的权限内容。
讲到权限就不得不talk about一下继承
for instance
假如我们刚刚用的不是struct person 和struct dog
而是class person 和class dog。当然我先说一下这俩个都可以继承。甚至可以是一个是struct一个时class然后继承,意想不到吧,哈哈。
当然结构体继承类或者类继承结构体都是可以的,因为C++的struct是做了强化的,跟类只有一点区别,当然继承后的新的类或者新的结构体的权限取决于子类而不是父类
class cat:public person,public dog
this is multiple inheritance.是的,你应该多少听过继承这个概念,子类继承了父类的成员函数,让代码可以循环利用增加可读性,它可以一次继承一个结构体或者类,也可以同时继承多个结构体或者类,新的类或者结构体的权限是公有或者其他取决于之前继承关系中的子类。
当多继承的两个父类中有同名成员,则需要加作用域进行区分。
感谢观看
thank you all。