通常this指针在对象构造完毕后才完全生成,而在构造函数执行过程中,对象还没有完全生成,所以this指针也是没有完全生成的,在构造函数中使用this指针会存在问题,应该尽量避免。

构造函数中可以访问对象中已经初始化的成员(成员初始化是有顺序的),但尽量不要调用对象方法,因为调用方法的时候会隐含使用this指针。

在某些应用中会存在这样的对象,他的成员变量需要用对象的this指针进行初始化:

class A
{
B b;
}; class B
{
A* a;
};  

A类的构造函数可以写成:

A(): b(this)

这样会违反构造函数中尽量不使用this指针的规范,一种替代的方法是,在A类中增加Init方法,在此方法中设置B的成员变量值为A对象的this指针,Init方法在A对象构造完后调用,从而this指针是完整的:

class A
{
B b; A()
{
} void Init()
{
b.SetMemberA(this);
}
}; class B
{
A* a; void SetMemberA(A* pa)
{
a = pa;
}
};

最新文章

  1. mybatis中#{}与${}的差别(如何防止sql注入)
  2. monodroid 调用 JNI Native 的一些问题
  3. codevs 2594 解药还是毒药
  4. Android新权限机制 AppOps
  5. jquery eval解析JSON中的注意点介绍
  6. PHP开发异步高性能的MySQL代理服务器
  7. MVC控制器C完美分离(有脚手架辅助)
  8. aspcms多图调用以及错误提示:3704
  9. IDEA搭建SpringMVC+Mybatis+Mysql+Maven框架
  10. [Go] golang原子函数实现goroutine同步
  11. oh-my-zsh安装和简单定制
  12. SpringCloud Zuul网关超时
  13. hdu 2844 Coins (多重背包+二进制优化)
  14. 数据库范式:1NF,2NF,3NF,BCNF浅析
  15. stark组件之多级过滤
  16. [Groovy] 创建Excel,追加Excel
  17. javascript中json对象长度
  18. ElasticSearch client API
  19. 怎么才能将文件流或者图片转化为base64,传到前台展示
  20. NO.7:自学python之路------类的方法、异常处理、socket网络编程

热门文章

  1. cf479C Exams
  2. GridFS
  3. structs2标签
  4. jQuery支持移动Mobile的DOM元素移动和缩放插件
  5. RMAN传输表空间迁移数据
  6. android 更改USB显示名称
  7. swift通过摄像头读取每一帧的图片,并且做识别做人脸识别
  8. VS插件集
  9. Android 一次退出所有activity的方法
  10. 创建GIF loading图片