草庐IT

this-page

全部标签

c++ - 如何在 C++ 中传递 "this"

我对C++中的this关键字感到困惑,我不确定传递this是否正确。这是我正在努力解决的一段代码:ClassA::ClassA(ClassB&b){b.doSth(this);//tryingtocallb'sroutinebypassingapointertoitself,shouldIuse"this"?}ClassB::doSth(ClassA*a){//dosth} 最佳答案 您使用正确。this指针指向当前对象实例。classhelper{public:voidhelp(worker*pWorker){//TODOdoso

c++ - 如何在 C++ 中传递 "this"

我对C++中的this关键字感到困惑,我不确定传递this是否正确。这是我正在努力解决的一段代码:ClassA::ClassA(ClassB&b){b.doSth(this);//tryingtocallb'sroutinebypassingapointertoitself,shouldIuse"this"?}ClassB::doSth(ClassA*a){//dosth} 最佳答案 您使用正确。this指针指向当前对象实例。classhelper{public:voidhelp(worker*pWorker){//TODOdoso

c++ - 常量不匹配 : 2 overloads have no legal conversion for 'this' pointer

我收到了这个奇怪的错误:errorC2663:'sf::Drawable::SetPosition':2overloadshavenolegalconversionfor'this'pointer我认为这与const不匹配有关,但我不知道在哪里,或者为什么。在下面的代码中,我有一个形状和Sprite的vector,当尝试访问其中一个vector形状并调用它的一个函数时,我遇到了错误。std::vectorShapes;std::vectorSprites;boolAddShape(sf::Shape&S){Shapes.push_back(S);returntrue;};boolAdd

c++ - 常量不匹配 : 2 overloads have no legal conversion for 'this' pointer

我收到了这个奇怪的错误:errorC2663:'sf::Drawable::SetPosition':2overloadshavenolegalconversionfor'this'pointer我认为这与const不匹配有关,但我不知道在哪里,或者为什么。在下面的代码中,我有一个形状和Sprite的vector,当尝试访问其中一个vector形状并调用它的一个函数时,我遇到了错误。std::vectorShapes;std::vectorSprites;boolAddShape(sf::Shape&S){Shapes.push_back(S);returntrue;};boolAdd

c++ - 从 'enable_shared_from_this' 派生一个类可以提高性能吗?

make_shared比单独调用new并创建shared_ptr性能更高,因为make_shared为引用分配空间在与客户端对象实例相同的内存块中计数和弱计数(有效地为shared_ptr提供了intrusive_ptr的大部分性能优势)。enable_shared_from_this给出一个共享指针,而不引用任何共享指针。因此,必须以某种方式从客户端对象内部访问诸如引用和弱计数之类的东西。因此,enable_shared_from_this导致类似于make_shared的侵入性计数是明智的。但是,我不知道如何实现类似的东西(即使我查看实际来源,我也不确定我是否会关注其中发生的事情)

c++ - 从 'enable_shared_from_this' 派生一个类可以提高性能吗?

make_shared比单独调用new并创建shared_ptr性能更高,因为make_shared为引用分配空间在与客户端对象实例相同的内存块中计数和弱计数(有效地为shared_ptr提供了intrusive_ptr的大部分性能优势)。enable_shared_from_this给出一个共享指针,而不引用任何共享指针。因此,必须以某种方式从客户端对象内部访问诸如引用和弱计数之类的东西。因此,enable_shared_from_this导致类似于make_shared的侵入性计数是明智的。但是,我不知道如何实现类似的东西(即使我查看实际来源,我也不确定我是否会关注其中发生的事情)

c++ - 私有(private)继承隐藏基类,出现 "inaccessible within this context"错误

我遇到了类似于Privateinheritancerendersclassinaccessible中描述的问题当我尝试在派生类中声明基类的成员时,私有(private)继承的基类给出“在此上下文中不可访问”错误。在上述情况下,使用::X显式引用X是可行的,但如果代码位于以下函数中会怎样:voidfooby(){classX{};classY:privateX{};classZ:publicY{public:Xx;//Compiler"inaccessiblewithinthiscontext"error};};在这种情况下你如何引用X?如果fooby是一个结构/类,那么::fooby:

c++ - 私有(private)继承隐藏基类,出现 "inaccessible within this context"错误

我遇到了类似于Privateinheritancerendersclassinaccessible中描述的问题当我尝试在派生类中声明基类的成员时,私有(private)继承的基类给出“在此上下文中不可访问”错误。在上述情况下,使用::X显式引用X是可行的,但如果代码位于以下函数中会怎样:voidfooby(){classX{};classY:privateX{};classZ:publicY{public:Xx;//Compiler"inaccessiblewithinthiscontext"error};};在这种情况下你如何引用X?如果fooby是一个结构/类,那么::fooby:

c++ - 如何在构造函数中处理 'this' 指针?

我有在其构造函数中创建其他子对象的对象,传递“this”以便子对象可以将指针保存回其父对象。我在编程中广泛使用boost::shared_ptr作为std::auto_ptr或原始指针的更安全替代方案。所以child会有shared_ptr这样的代码,而boost提供了shared_from_this()parent可以给child的方法。我的问题是shared_from_this()不能在构造函数中使用,这并不是犯罪,因为无论如何都不应该在构造函数中使用“this”,除非您知道自己在做什么并且不介意限制。Google的C++风格指南states构造函数应该只将成员变量设置为其初始值。

c++ - 如何在构造函数中处理 'this' 指针?

我有在其构造函数中创建其他子对象的对象,传递“this”以便子对象可以将指针保存回其父对象。我在编程中广泛使用boost::shared_ptr作为std::auto_ptr或原始指针的更安全替代方案。所以child会有shared_ptr这样的代码,而boost提供了shared_from_this()parent可以给child的方法。我的问题是shared_from_this()不能在构造函数中使用,这并不是犯罪,因为无论如何都不应该在构造函数中使用“this”,除非您知道自己在做什么并且不介意限制。Google的C++风格指南states构造函数应该只将成员变量设置为其初始值。