日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

成员变量和成员函数分开存储

發布時間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 成员变量和成员函数分开存储 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先來說結論:

? ? ? ? 1.在C++中,類內的成員變量和成員函數分開存儲

? ? ? ? 2.只有非靜態成員變量才屬于類的對象上

空類(類中上面對象都沒沒有)占用內存大小為:1

#include <iostream>
#include <string>
using namespace std;class Person
{};void test01()
{Person p;cout << "空類的內存大小:" << sizeof(p) << endl;
}int main()
{test01();system("pause");return 0;
}

?

可能會有人有這個疑問,為什么空類占用內存不是0呢,這是因為:

????????sizeof(A) > 0 是因為標準規定完整對象的大小為正數。因為每個內存都有它獨有的代號 (首地址)

只有非靜態成員變量才屬于類的對象上的數據:

在類中添加一個成員變量:int m_A;

#include <iostream>
#include <string>
using namespace std;class Person
{
private:   //屬性 一般私有int m_A;   //非靜態成員變量
};void test01()
{Person p;cout << "空類的內存大小:" << sizeof(p) << endl;
}int main()
{test01();system("pause");return 0;
}

因為非靜態成員變量? 屬于類的對象上


靜態成員變量它不屬于類的對象上面的數據:

#include <iostream>
#include <string>
using namespace std;class Person
{
private:int m_A;static int m_B;
};void test01()
{Person p;cout << "空類的內存大小:" << sizeof(p) << endl;
}int main()
{test01();system("pause");return 0;
}

這里順便說一下,靜態成員變量需要在類內聲明,類外初始化,當然我因為沒使用那個變量就沒聲明

印證了那句靜態成員變量不屬于類對象的數據

?

類內的成員變量和(成員函數和靜態成員函數)分開存儲:

#include <iostream>
#include <string>
using namespace std;class Person
{
public:int Swap(){}static double Fun() {}private:int m_A;static int m_B;
};void test01()
{Person p;cout << "空類的內存大小:" << sizeof(p) << endl;
}int main()
{test01();system("pause");return 0;
}

運行結果不出所也是:4

?

總結一下:

類內的成員變量和成員函數分開存儲!

無論是靜態成員變量、靜態成員函數、非靜態成員函數 都不屬于類對象上的數據。

只有非靜態成員變量屬于類對象上的數據!

加油吧,騷年!

總結

以上是生活随笔為你收集整理的成员变量和成员函数分开存储的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。