大佬教程收集整理的这篇文章主要介绍了我必须使用C类字段的指针吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我现在正在工作的特定场景中,我不想使用正常的变量(他们的方式是什么正确的术语?),因为在声明它们时会自动初始化它们.
在我的代码段中,bar1会自动使用默认的构造函数(这不是我想要的)实例化,& bar2导致编译器错误,因为您不能使用未初始化的引用(正确的?),而且* bar3是快乐的,因为larry因为指针可以被声明为未初始化(顺便说一下,最佳做法是将其设置为NULL?).
class Foo { public: Bar bar1; Bar &bar2; Bar *bar3; }
看起来我在这种情况下必须使用指针,这是真的吗?此外,使用变量的最佳方法是什么? – >语法有点麻烦吗?艰难的运气? smart pointers等等?这是否相关?
更新1:
在我的类中尝试实现引用变量字段并在构造函数中初始化之后,为什么会收到以下错误?
../src/textures/VTexture.cpp: In constructor ‘vimrid::textures::VTexture::VTexture()’: ../src/textures/VTexture.cpp:19: error: uninitialized reference member ‘vimrid::textures::VTexture::image’
这是真正的代码:
// VTexture.h class VTexture { public: VTexture(vimrid::imaging::ImageMatrix &rImagE); private: vimrid::imaging::ImageMatrix ℑ } // VTexture.cpp VTexture::VTexture(ImageMatrix &rImagE) : image(rImagE) { }
// VTexture.h class VTexture { public: VTexture(vimrid::imaging::ImageMatrix &rimagE) : image(rImagE) { } }
更新2:
弗雷德·拉森 – 是的!有一个默认构造函数;我忽略了它,因为我认为这与问题无关(愚蠢的我).删除默认构造函数后,我引起编译器错误,因为该类与std :: vector一起使用,该std :: vector需要默认构造函数.所以看起来我必须使用默认构造函数,因此必须使用一个指针.耻辱还是呢?
以上是大佬教程为你收集整理的我必须使用C类字段的指针吗?全部内容,希望文章能够帮你解决我必须使用C类字段的指针吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。