1.虚函数可不可以重载为内联函数?
虚函数不可以内联,因为虚函数是在运行的时候确定具体调用的函数,内联是在编译的时候进行代码展开,两者冲突,所以没有一起使用的做法
2.内联函数在编译时是否做参数类型检查?【是】
宏和内联函数的区别:
- 内联函数在运行时可调试,而宏定义不可以;
- 编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会;
- 内联函数可以访问类的成员变量,宏定义则不能;
- 在类中声明同时定义的成员函数,自动转化为内联函数。
3.int (*p)[3]中的p的含义是?
int (*)p[4];//ptr为指向含4个元素的一维整形数组的指针变量(是指针)
int *p[4]; //定义指针数组p,由4个指向整形数据的指针元素组成(是数组)
int (*)[4]; //实际上可以看作是一种数据类型,即第一个int (*p)[4]