C++学习笔记

一、开题

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

               

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值