一、开题
①:#define dPS struct s *
②:typedef struct s * tPS;
这两种情况都是要定义dPS和tPS作为一个指向结构s的指针,请问哪种方法更好?
答:第二种方法更好,因为第一种方法是在编译器进行预处理将所有dPS直接替换为struct s *这样做会有风险,例如我想要定义三个指向结构体s的指针变量,如dPS a, b, c;这样写,在预处理完成后,我将得到struct s *a, b, c;这是一个指向结构体s的指针变量和两个结构体,与我原来的预期不相符,而第二种方式,是帮助我给struct s *取了一个别名,可以避免上述情况的发生。
----------------------------------------------------------------------------------
typedef、define
----------------------------------------------------------------------------------
二、温故知新
1、static
在C++中,使用static关键字修饰类的成员变量,叫做静态的成员变量
特点:该类的所有成员都可以使用
要求:需要在类的外部进行初始化
在C++中,使用static关键字修饰类的成员函数,叫做静态的成员函数
特点:只能访问静态的成员变量,并且没有this指针
总结:
【1】静态成员变量是所有对象的公有属性
【2】一定要在类的外部进行初始化
【3】在初始化的时候不需要加static关键字,static关键字只出现在声明中
【4】静态成员函数只可以访问静态成员
静态的成员函数与普通的成员函数的区别:
【1】静态成员函数没有this指针,只能访问静态成员(静态成员变量和静态成员函数)
【2】普通成员函数有this指针,可以访问类中的任意成员
2、const
总结:
【1】如果const关键字修饰的是成员函数,则称为常函数,常函数不会修改成员变量的值。
【2】如果const关键字修饰的是对象,则称为常对象,常对象只能访问常函数。
3、友元函数和友元类
关键字:friend
1)友元函数
类以外的函数如果想要访问类内部的成员变量,我们可以在函数声明的时候加入关键字:friend
注意:友元函数是定义在类外部的普通函数,但是友元函数需要在类内进行声明。
2)友元类
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » C++学习笔记
发表评论 取消回复