Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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++ 为什么要检查静态数据存储器的访问规范 #包括 使用名称空间std; 类MyClass { 私人: 静态int x; 静态整数计算(整数a、整数b) { cout 每个static成员在该类的所有实例中共享。因此,它们不属于某个特定的类实例,而是属于该类本身 访问规范规则是针对每个类的,而不是针对每个对象的_C++_Static - Fatal编程技术网

C++ 为什么要检查静态数据存储器的访问规范 #包括 使用名称空间std; 类MyClass { 私人: 静态int x; 静态整数计算(整数a、整数b) { cout 每个static成员在该类的所有实例中共享。因此,它们不属于某个特定的类实例,而是属于该类本身 访问规范规则是针对每个类的,而不是针对每个对象的

C++ 为什么要检查静态数据存储器的访问规范 #包括 使用名称空间std; 类MyClass { 私人: 静态int x; 静态整数计算(整数a、整数b) { cout 每个static成员在该类的所有实例中共享。因此,它们不属于某个特定的类实例,而是属于该类本身 访问规范规则是针对每个类的,而不是针对每个对象的,c++,static,C++,Static,从上面可以看出,访问规范规则应用于静态成员是合乎逻辑的 您的困惑源于这样一个事实,即如果您检查具有静态成员的类的大小,则静态成员的存在不会产生任何开销。这种行为是正确的。静态成员不会影响类的大小,但它们仍然是类的一部分,标准明确规定了这一点 参考资料: 9.4.2静态数据成员: §1: 静态数据成员不是类的子对象的一部分。如果声明了一个静态数据成员thread\u local,则每个线程有一个成员副本。如果未声明一个静态数据成员thread\u local,则该类的所有对象都共享一个数据成员副

从上面可以看出,访问规范规则应用于
静态成员是合乎逻辑的

您的困惑源于这样一个事实,即如果您检查具有静态成员的类的大小,则静态成员的存在不会产生任何开销。这种行为是正确的。静态成员不会影响类的大小,但它们仍然是类的一部分,标准明确规定了这一点


参考资料:
9.4.2静态数据成员:
§1:

静态数据成员不是类的子对象的一部分。如果声明了一个静态数据成员
thread\u local
,则每个线程有一个成员副本。如果未声明一个静态数据成员
thread\u local
,则该类的所有对象都共享一个数据成员副本

  • 每个
    static
    成员在该类的所有实例中共享。因此,它们不属于某个特定的类实例,而是属于该类本身
  • 访问规范规则是针对每个类的,而不是针对每个对象的
从上面可以看出,访问规范规则应用于
静态成员是合乎逻辑的

您的困惑源于这样一个事实,即如果您检查具有静态成员的类的大小,则静态成员的存在不会产生任何开销。这种行为是正确的。静态成员不会影响类的大小,但它们仍然是类的一部分,标准明确规定了这一点


参考资料:
9.4.2静态数据成员:
§1:

静态数据成员不是类的子对象的一部分。如果声明了一个静态数据成员
thread\u local
,则每个线程有一个成员副本。如果未声明一个静态数据成员
thread\u local
,则该类的所有对象都共享一个数据成员副本


静态成员不是成员?静态成员是类的一部分,但不是类实例的一部分。当然,它们是类的一部分。它们对于所有实例都是一样的。@Mat:这是我的疑问!!@Ankur:如果它们不是成员,为什么会被称为成员?静态成员不是成员?静态成员是类的一部分,但不是pa类实例的rt。当然,它们是类的一部分。它们对于所有实例都是一样的。@Mat:这是我的疑问!!@Ankur:如果它们不是成员,为什么会被称为成员?
#include <iostream>
using namespace std;
class MyClass
{
private:
    static int x;
static int calc(int a, int b)
{
    cout << "chekcing !! ";
    return b * a;
}
};
int MyClass::x = 1;
int main()
{
 MyClass::calc(1,2);
 MyClass::x += 3;
 return 0 ;
}