c++类的小知识点static关键字/友元/运算符重载

1.类
定义在类内部的函数是隐式的内联函数
引入const成员函数,这里const的作用是修改隐式this指针的类型,默认情况下this的类型是指向类类型非常量版本的常量指针。

C++类对象中的成员变量和成员函数是分开存储的(内存四区:堆区、栈区、全局区、代码区模型仍然有效)
成员变量:普通成员变量:存储于对象中,与struct变量有相同的内存布局和字节对齐方式
静态成员变量:存储于全局数据区中
成员函数:存储于代码段中。
很多对象共用一块代码?代码是如何区分具体对象【C++中类的普通成员函数都隐式包含一个指向当前对象的this指针。】

 


静态成员函数、成员变量的区别与联系
     1.都属于类
     2.静态成员函数与普通成员函数的区别
           静态成员函数不包含指向具体对象的指针
           普通成员函数包含一个指向具体对象的指针

static关键字
静态成员变量:?1.静态成员提供了一个同类对象的共享机制
                2.把一个类的成员说明为 static 时,这个类无论有多少个对象被创建,
                   这些对象共享这个 static 成员,所有对象都可以操作静态成员变量
                  可以通过对象  a.xxx访问,也可以A::xxx访问
?              3.静态成员局部于类,它不是对象成员
静态成员函数:  1.静态成员函数提供不依赖于类数据结构的共同操作,它没有this指针
?              2.在类外调用静态成员函数用 “类名 :: ”作限定词,或通过对象调用
                3.在静态成员函数中只能使用整个类的成员,不可以使用具体的普通变量和成员函数(因为这两个是属于具体的对象的)

友元函数:
A类的友元函数一般至少包含一个A类对象的参数(指针或者引用)
友元函数写在private或者public之下都可以
友元函数声明之前必须作为普通函数先声明一下

友元类:通常一种堆数据操作或者类之间传递消息的辅助类

运算符重载:(本质是一个函数)
Complex operator+(Complex &c1, Complex &c2)//在复数类里重载+运算符
{
    Complex tmp(c1.a+ c2.a, c1.b + c2.b);
    return tmp;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值