指向const型变量的指针变量
const 类型名 *指针变量名:const char *ptr;
1、const型变量只能用指向常变量类型的指针变量指向它
2、const关键字声明的变量,无论是对象还是基本变量,都是受保护的,其内容是不能被修改的,这是一个大原则。
3、一旦一个指针变量指向了一个const声明的变量(const型变量只能用指向常变量类型的指针变量指向它),那么就不能通过指针来改变此变量的值,总体一个原则:指针变量可以改变指向,但不能改变指向的内容。
4、指向const型变量的指针变量,其级别要高一些,可以将非const型的指针变量赋给const型指针变量(反之则不成立),但不能通过const型指针变量来改变此变量所代表的内容,总而言之:const型指针变量可以改变指向,但不能改变指向的内容。
static声明的数据成员与const声明的数据成员的区别
1、static是为了共享数据,而const是为了保护数据不被改变
2、static数据成员不是属于某一个对象的,而是属于类的。既可以通过对象名引用,也可以通过类名来引用。
3、静态数据成员在内存中只占一份空间,而不是为每个对象都分别为他保留一份空间,静态数据成员是在所有对象之外单独开辟空间,它可以被引用。静态数据成员是在程序编译时被分配空间的,到程序结束时才释放空间
4、静态数据成员可以初始化,但只能在类体外进行初始化。不能用参数初始化表对静态数据成员初始化
5、如果未对静态数据成员赋初值,则编译系统会自动赋予初值0。
static声明的成员函数与const声明的数据成员的区别
1、静态成员函数的作用不是为了对象之间的沟通,而是为了能够处理静态成员
2、静态成员函数并不属于某一个对象,它与任何对象都无关,因此静态成员函数没有this指针,因此不能默认的访问本类对象。
3、静态成员函数可以默认访问本类的静态数据成员,静态成员函数就是专门为了访问静态数据成员而设计的。
4、如果一定要使静态成员函数来访问本类的非静态数据成员,需要在静态成员函数的参数列表中声明本类作为形参,然后将本类对象作为实参传递到静态成员函数中,然后通过对象的引用来访问非静态数据成员。
5、程序设计过程中,不提倡用静态成员函数来访问非静态数据成员!!!
5、(类名+ ::):利用作用域限定符,来限制某个函数,某个静态变量属于某个类。这个符号具有通用性,即:表示限定