-
C++中的结构体可以定义函数,但是c的结构体是不行的,因为在C++中我们把结构体也当作是类,这个类的默认访问权限是public的(为了兼容C)
-
类的定义
class Person
{
//类体:由成员变量和成员函数组成
}; //这里一定要由分号
-
类的访问修饰限定符
CPP中类的访问修饰限定符一共有三种,他们分别是public,protected和private,public修饰的成员在类内外都可以随便访问,而protected和private修饰的成员只能在类内访问。
-
类的作用域
类定义了一个新的作用域,其中包括了他的成员变量和成员函数,如果我们要指明某个东西是在哪个作用域内的,使用::符号,如下
class Person { public: void print(); private: char m_name[20]; int m_age; }; void Person::print() //指明类域 { }
-
类的实例化
我们可以把类想象成一个图纸,用这个图纸我们造出来一座座标准化的房子,这个房子就是对象,类创建对象的过程就称为类的实例化
这时候我们又引出了一个问题,如何取计算对象的大小?
实际上,对象中只存放成员变量,而成员函数则被存放在公共的代码段,因为如果成员函数也存放在对象内,我们知道只要是一个类实例化出来的对象,它的成员函数都是相同的,相同的东西一直重复制造,岂不是浪费非常多的空间,因此这个成员函数不存放在对象内,所以要计算对象大小只需要知道结构体字节对齐规则就行了,这个规则很多人写过了,这里不再赘叙。
-
this指针
this指针一句话概括就是一个指向当前对象的指针,比如当成员变量的名字和传入的参数名字相同时,我们就可以使用this指针避免命名冲突,如下:
class Person { public: Person(int age) { this->age = age; //避免传进来的age和我们的成员变量名字冲突 } private: int age; };