为什么写一个函数传参时候,可以只传进去一个类型或者类型指针,而无变量名。 码拜 10年 ago C++ 函数 传参 见代码 //函数的声明 static void *oom_realloc(void *, size_t); //具体的实现 template<int inst> void* __malloc_alloc_template<inst>::oom_realloc(void *, size_t) { void (* my_malloc_handler)(); void *result; for(;;) { my_malloc_handler = __malloc_alloc_oom_handler; if(0 == my_malloc_handler) { __THROW_BAD_ALLOC; } (*my_malloc_handler)(); result = realloc(n); if(result) return (result); } } //其中直接用了void*传参,为啥。 还有,以下代码中 template<class T> inline T* _allocate(ptrdiff_t size, T*) { ……… } 其中的T*直接可以传参?表示不理解。 //其中直接用了void*传参,为啥。 //void* 有一个外号, 万能指针, 可以被转换成任何类型, 这里作为返回值没有任何问题 还有,以下代码中 template<class T> inline T* _allocate(ptrdiff_t size, T*) { ……… } 其中的T*直接可以传参?表示不理解。 //关于 T*, 先学习下模板再说 第二个和模板有关,可是第一个和模板没关系吧。。 30分 static void *oom_realloc(void *, size_t); 这是函数原型, 如下C++Primer Plus: 楼上正解! CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明为什么写一个函数传参时候,可以只传进去一个类型或者类型指针,而无变量名。!