类中只有 成员变量 和 一个成员函数表

成员函数中静态变量的作用域0
一个类的成员函数中的静态变量的作用域是整个类,还是对象呢?例如:
#include <iostream>
using namespace std;

class CA
{
public:
    void print()
    {
        static int A=0;
        A++;
        cout<<A<<endl;
    }
};
void main()
{
   
    CA a,b;
    a.print();
    b.print();
    system("pause");
}
结果是 1 1 还是 1 2 呢?
经过思考,猜想:
        一个类中的成员函数并不在类中,只是和这个类有一种关联,一个对象调用成员函数时,
会隐藏地把存有自己的地址的指针传入被调用的成员函数,成员函数通过这个指针操作
调用它的对象中的成员变量。上例中对象a和对象b中的print()函数其实是同一个函数,
所以静态变量A也是同一个,猜想输出为 1 2
通过实验,输出为 1 2  ,证明我的猜想是对的。
这再次说明了类中只有 成员变量 和 一个成员函数表。
大部分转载 小部分自写
原文地址:https://www.cnblogs.com/8586/p/1280967.html