指针做参数时注意事项
2016-05-03 14:17
267 查看
1. 当把一个指针作为参数时,指针不能为空,指针必须为一个指向确定地址的值
void main()
{
Test *a;
// a=new Test();//加上此句正确,
handle(a);//错误
}
void handle(Test *t)
{
t->a=4;
}
2.如果非要使用空指针可以在下面的情况中使用1.参数为取地址符2.函数内为空指针分配空间或者指向一个地址
void main()
{
Test *a;
handle(a);//只有在下面特殊情况下可以
}
void handle(Test * &t)
{
t=new T();//不分配空间是不可以使用的
t->a=4;
}
3.如果指针变量传入后做为另一个变量的成员,则此指针只能传入一次,否则多个变量拥有这个指针,当一个类删除时,此
指针可能被释放,而其他变量就无法使用和释放。
void main()
{
Test *a=new Test();
handle(a);//此时a只能传入一次
}
void handle(Test * &t)
{
B b=new B();//不分配空间是不可以使用的
b->a=a;
}
void main()
{
Test *a;
// a=new Test();//加上此句正确,
handle(a);//错误
}
void handle(Test *t)
{
t->a=4;
}
2.如果非要使用空指针可以在下面的情况中使用1.参数为取地址符2.函数内为空指针分配空间或者指向一个地址
void main()
{
Test *a;
handle(a);//只有在下面特殊情况下可以
}
void handle(Test * &t)
{
t=new T();//不分配空间是不可以使用的
t->a=4;
}
3.如果指针变量传入后做为另一个变量的成员,则此指针只能传入一次,否则多个变量拥有这个指针,当一个类删除时,此
指针可能被释放,而其他变量就无法使用和释放。
void main()
{
Test *a=new Test();
handle(a);//此时a只能传入一次
}
void handle(Test * &t)
{
B b=new B();//不分配空间是不可以使用的
b->a=a;
}
相关文章推荐
- C++中指向子类的父类指针访问父、子类成员时的权限和函数隐藏规则
- MongoDB比较查询操作符
- SPOJ 220 Relevant Phrases of Annihilation(后缀数组+二分)
- Python 异常处理 Python 基础教程 try..except
- Java多线程总结
- iOS开发中NSUserDefaults的一些用法
- 一些看起来不错的Unity资源包
- tryCollectionClass
- 熟悉百度地图使用
- angular state和stateParams
- 第十一周 阅读程序(4)
- MongoDB查询文档之find函数
- (转)微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)
- C++杂七杂八小知识
- android camera
- Linux远程秘钥登录方式
- java nio基础二
- 2、Nginx配置文件nginx.conf的配置详解
- Android中shape的属性
- 文件的结构