在C语言中结果欧体只能定义变量,在C++中结构体不仅可以定义变量,也可以定义函数,但C++中一般使用class代替struct
定义方式
声明和定义全放在类中,成员函数如果在类中定义,编译器可能会将其当成内联函数处理声明放在.h文件中,定义放在.cpp文件中,一般采用此方式,定义时需要使用作用域解析符(::)说明成员属于哪个类域特性
访问权限作用域从该访问限定符出现的位置到下一个访问限定符位置class默认访问权限是private,struct默认访问权限是public体现了封装性,封装就是将数据和操作方法进行有机结合,隐藏对象的属性和实现的细节,仅对外公开接口来和对象进行交互C++编译器给每个成员函数(构造函数除外)增加了一个隐藏指针参数,该指针指向当前对象,在函数体重的所有成员变量的操作都是通过该指针去访问的
特性
this指针类型:类类型* constthis指针存在栈上只能在成员函数内部使用this指针本质上是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this形参,所以对象不存储this指针this指针是成员函数第一个隐含的指针形参,一般由编译器通过ecx寄存器自动传递,不需要用户传递