一、开题

        ①:#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)友元类

               

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部