1. 可变参数
java中:int ...
c++:...
va_start(vp,count);
:将可变参数放到va_list vp中去,这个宏必须在使用 va_arg 和 va_end 之前被调用。int number = va_arg(vp,int);
: 获取可变参数,如果超出了可获取的范围默认就为0va_end(vp);
:结束了释放内存。
1 | void sum(int count,...){// java:int ..., c++: ... |
打印结果:
1 | 1 |
1 | int sum(int count,...){// java:int ..., c++: ... |
打印结果:
1 | 0:1 |
2. static 关键字
总结:
- 静态的属性定义时
必须要初始化
(实现)int Student::tag = 12;
- 静态 可以直接用类名去操作 ::
Student::tag += 12;
- 静态的方法只能去操作静态的属性或者方法
1 | class Student{ |
打印结果:
1 | 24 |
3. 对象大小
- 对象的大小与结构体的计算方式类似
- static 静态变量和方法并没有算到类的大小中
- 栈,堆,全局(静态,常量,字符串),代码区 ,类的大小只与普通属性有关系
1 | class A{ |
打印结果:
1 | A 的大小: 16 |
4. this 指针
this 指针:代表当前的对象,因为类的方法放在代码区,大家一起共享的,所以要有 this 做区分
5.const 修饰函数
const 在 () 之后主要用来限制 this 关键字
,this
的值和地址都不能修改
1 | // this = const Student* const this |
6.友元函数
作用:友元函数是可以在外部访问其私有属性的
1 | class Person |
打印结果:
1 | 36 |
注意:调用的时候不
使用 类名::
6.1 友元函数与普通函数的区别
- 友元函数:直接
方法名
调用。 - 普通函数:需要
对象名::
+方法名
调用
7.友元类
作用:友元类是可以在访问其附属类的私有属性
1 | class ImageView |
打印结果:
1 | 12 |