小编Fél*_*net的帖子

在构造函数的初始化列表中使用“this”对 Qt 特别危险吗?

我需要关于“这个”主题的可靠信息:

class MyClass, public QWidget
{
public:
    MyClass( QWidget * parent = NULL )
         :QWidget( parent ),
         mpAnotherWidget( new QWidget( this ) ){};
private:
    QWidget * mpAnotherWidget;
};
Run Code Online (Sandbox Code Playgroud)

当然,在构造函数或初始化列表中调用虚函数是一个坏主意。问题是:这个代码可以吗

mpAnotherWidget( new QWidget( this ) )
Run Code Online (Sandbox Code Playgroud)

导致未定义的行为?!如果是这样:为什么?

如果可以,请引用您的来源!谢谢!

c++ qt constructor this-pointer initialization-list

6
推荐指数
1
解决办法
682
查看次数

Python类继承构造函数失败:我做错了什么?


我有一个小的Python OOP程序,其中2个类,Flan和Outil继承自超类Part.
我的问题是当我把Flan所有东西都称为完美时,但是当我调用Outil程序时,它会无声地失败.
Outil实例被创建,但它缺乏所有它不与共享属性Part.
Outil实例未添加到Outil.list_instance_outils,也未添加到Part.list_instances.

class Outil(Part):

    list_instance_outils = []    

    def __init___(self, name, part_type, nodes, elems):
        Part.__init__(self, name, part_type, nodes, elems)
        self.vect_norm = vectnorm(self.nodes[self.elems[0,1:]-1, 1:])
        self.elset = Elset(self)
        self.nset = Nset(self, refpoint=True, generate=False)
        self.SPOS = Ab_surface(self, self.elset)
        self.SNEG = Ab_surface(self, self.elset, type_surf='SNEG')
        Outil.list_instance_outils.append(self)
        Part.list_instances.append(self)

class Flan(Part):

    list_instances_flans = []    

    def __init__(self, name, part_type, nodes, elems):
        Part.__init__(self, name, part_type, nodes, elems)       
        self.vect_norm = vectnorm(self.nodes[self.elems[0,1:4]-1, 1:])
        self.elset = …
Run Code Online (Sandbox Code Playgroud)

python oop inheritance

1
推荐指数
1
解决办法
145
查看次数