1、类的定义:C++中用户自定义的一种数据类型,与C语言中的结构体相比,类能够更好的反应被描述的类型,勒种既可以包含成员变量,也可以包含成员函数。
2、类的声明形式:
class class_name {
public:
公有成员变量或者成员函数
private:
私有成员变量或者成员函数
protected:
受保护的成员变量或者成员函数
};
3、类声明的内容:
(1)成员变量的声明
变量类型 变量名;
(2)成员函数的声明
成员函数类型 函数名(形参表);
(3)成员函数的实现
// 类内的实现
函数类型 函数名(形参表) {
函数体
}
void Add(int a, int b) {
return a + b;
}
// 类外的实现
// :: 作用域运算符
函数类型 类名::函数名(形参表) {
函数体
}
void Data::Add(int a, int b) {
return a + b;
}
4、对象的定义和引用:
// 对象的定义
// 类名 对象名;
List l;
// 类名 对象名(参数表);
Data d1(2019,5,16);
// 对象引用
// 对象名.数据成员
d1._year;
*this->_year;
5、类对象大小的计算:一个类的大小,实际就是该类中”成员变量”之和,当然也要进行内存对齐,注意空类的大小,空类比 较特殊,编译器给了空类一个字节来唯一标识这个类。(成员函数不计入大小、空类默认大小主流操作系统为一个字节)
6、this指针:C++编译器给每个“成员函数“增加了一个隐藏的指针参数,让该指 针指向当前对象(函数运行时调用该函数的对象),在函数体中所有成员变量的操作,都是通过该指针去访 问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。
编译器传递方式:对象地址作实参传递给成员函数的this指针。
this指针的特性:
1. this指针的类型:类类型* const
2. 只能在“成员函数”的内部使用
3. this指针本质上其实是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this 形参。所以对象中不存储this指针。
4. this指针是成员函数第一个隐含的指针形参,一般情况由编译器通过ecx寄存器自动传递,不需要用户 传递