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  |