Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt/C++;跨类实例共享变量和可见性_C++_Qt_Visibility_Qtcore_Qmutex - Fatal编程技术网

C++ Qt/C++;跨类实例共享变量和可见性

C++ Qt/C++;跨类实例共享变量和可见性,c++,qt,visibility,qtcore,qmutex,C++,Qt,Visibility,Qtcore,Qmutex,我正在努力解决一些非常基本的问题,希望有人能帮我澄清。以这个伪C++代码为例: class T { public QMutex M; int I; } 如果我实例化这个类三次(作为3个线程),是否有3个独立且不相关的M和I变量?或者所有3个实例是否共享相同的M和I变量 如果一个类有几个可重入方法(例如:slot),并且它们访问M或I,那么它们是否访问该类实例的M或I 如何为类的每个实例指定它自己的变量(其他实例无法访问) 如果我实例化这个类三次(作为3个线程),是否有3个独

我正在努力解决一些非常基本的问题,希望有人能帮我澄清。以这个伪C++代码为例:

class T {
  public
    QMutex M;
    int I;
}
  • 如果我实例化这个类三次(作为3个线程),是否有3个独立且不相关的M和I变量?或者所有3个实例是否共享相同的M和I变量

  • 如果一个类有几个可重入方法(例如:slot),并且它们访问M或I,那么它们是否访问该类实例的M或I

  • 如何为类的每个实例指定它自己的变量(其他实例无法访问)

  • 如果我实例化这个类三次(作为3个线程),是否有3个独立且不相关的M和I变量?或者所有3个实例是否共享相同的M和I变量

    分开,因为这些变量是在堆栈上而不是在堆上分配的。如果在不同的类实例中使用指向相同内存的指针,则可以通过堆对象共享内存值

    如果一个类有几个可重入方法(例如:slot),并且它们访问M或I,那么它们是否访问该类实例的M或I

    是的,如果您使用类实例上的插槽,它们将访问这些插槽,除非您显式尝试访问其他类实例

    如何为类的每个实例指定它自己的变量(其他实例无法访问)

    就像你在上面写的一样。:-)尽管,请注意,您编写了公共可访问性,因此最终可以通过任何实例从任何实例访问它们,但这可能不是您试图引用的内容

    如果我实例化这个类三次(作为3个线程),是否有3个独立且不相关的M和I变量?或者所有3个实例是否共享相同的M和I变量

    分开,因为这些变量是在堆栈上而不是在堆上分配的。如果在不同的类实例中使用指向相同内存的指针,则可以通过堆对象共享内存值

    如果一个类有几个可重入方法(例如:slot),并且它们访问M或I,那么它们是否访问该类实例的M或I

    是的,如果您使用类实例上的插槽,它们将访问这些插槽,除非您显式尝试访问其他类实例

    如何为类的每个实例指定它自己的变量(其他实例无法访问)


    就像你在上面写的一样。:-)尽管,请注意,您编写了公共可访问性,因此最终您可以通过任何实例从任何实例访问它们,但这可能不是您想要提及的内容。

    Thans Laszlo-您回答了我的许多问题!这是否意味着,如果我想创建一个QMutex变量M,由类T的多个实例共享,我就必须使M成为一个静态变量?@Michelle:是的。希望你不要因为我问了你这么多问题而恨我,也许你有时也想听听别人的意见。:-)Thans Laszlo-你回答了我很多问题!这是否意味着,如果我想创建一个QMutex变量M,由类T的多个实例共享,我就必须使M成为一个静态变量?@Michelle:是的。希望你不要因为我问了你这么多问题而恨我,也许你有时也想听听别人的意见。:-)