今天就跟大家聊聊有關(guān)C++中怎么存儲(chǔ)屬性和方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
在簡(jiǎn)陽等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷,外貿(mào)網(wǎng)站建設(shè),簡(jiǎn)陽網(wǎng)站建設(shè)費(fèi)用合理。
內(nèi)容介紹:
在C++中對(duì)于一個(gè)Class,它內(nèi)部的數(shù)據(jù)和方法到底是如何存儲(chǔ)的呢?是將數(shù)據(jù)和方法都存儲(chǔ)到Class的單個(gè)對(duì)象中呢,還是會(huì)將數(shù)據(jù)和方法分開來存儲(chǔ)?如下圖所示:
答案是圖2,每個(gè)對(duì)象占用存儲(chǔ)空間的只是該對(duì)象的數(shù)據(jù)部分(虛函數(shù)指針和虛基類指針也屬于數(shù)據(jù)部分),函數(shù)代碼屬于公用部分,所以在Class的存儲(chǔ)中,將數(shù)據(jù)部分與對(duì)象關(guān)聯(lián),函數(shù)部分則是存儲(chǔ)在一個(gè)公共的地方。
代碼實(shí)例:
#include
using namespace std;
class Node {
public:
int age;
string name;
void print();
};
void Node::print() {
cout<<"print &name:"<<&name<<" name:"<
cout<<"&print():"<<(void*)(&Node::print)<
}
int main() {
Node n;
n.name = "Davis";
n.age = 19;
n.print();
Node n1;
n1.name = "Jack";
n1.age = 18;
n1.print();
return 0;
}
輸出結(jié)果:
結(jié)果分析:
通過輸出我們可以看出,Node的兩個(gè)對(duì)象n和n1中存儲(chǔ)的數(shù)據(jù)name、age地址是不相同的,但是它們的公共函數(shù)print()的地址是相同的。
看完上述內(nèi)容,你們對(duì)C++中怎么存儲(chǔ)屬性和方法有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。