国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++類(lèi)和對(duì)象-C++對(duì)象模型和this指針->成員變量和成員函數(shù)分開(kāi)存儲(chǔ)、this指針概念、空指針訪(fǎng)問(wèn)成員函數(shù)、const修飾成員函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了C++類(lèi)和對(duì)象-C++對(duì)象模型和this指針->成員變量和成員函數(shù)分開(kāi)存儲(chǔ)、this指針概念、空指針訪(fǎng)問(wèn)成員函數(shù)、const修飾成員函數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

C++類(lèi)和對(duì)象-C++對(duì)象模型和this指針->成員變量和成員函數(shù)分開(kāi)存儲(chǔ)、this指針概念、空指針訪(fǎng)問(wèn)成員函數(shù)、const修飾成員函數(shù),c++,開(kāi)發(fā)語(yǔ)言,visualstudio

#include<iostream>
using namespace std;

//成員變量 和 成員函數(shù) 分開(kāi)儲(chǔ)存的
class Person {
public:
?? ?Person() {
?? ??? ?mA = 0;
?? ?}
?? ?//非靜態(tài)成員變量占對(duì)象空間
?? ?int mA;
?? ?//靜態(tài)成員變量不占對(duì)象空間
?? ?static int mB;
?? ?//函數(shù)也不占對(duì)象空間,所有函數(shù)共享一個(gè)函數(shù)實(shí)例
?? ?void func() {
?? ??? ?cout << "mA:" << this->mA << endl;
?? ?}
?? ?//靜態(tài)成員函數(shù)也不占對(duì)象空間
?? ?static void sfunc() {
?? ?}
};
int Person::mB = 0;

void test01()
{
?? ?Person p;
?? ?//空對(duì)象占用內(nèi)存空間:1
?? ?//C++編譯器會(huì)給每個(gè)空對(duì)象也分配一個(gè)字節(jié)空間,是為了區(qū)分空對(duì)象占內(nèi)存的位置
?? ?//每個(gè)空對(duì)象也應(yīng)該有一個(gè)獨(dú)一無(wú)二的內(nèi)存地址
?? ?cout <<"size of p =" <<sizeof(p) << endl;
}

void test02()
{
?? ?Person p;
?? ?cout <<"size of p =" <<sizeof(p) << endl;
}

int main() {

?? ?//test01();
?? ?test02();

?? ?system("pause");

?? ?return 0;
}文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-828521.html

C++類(lèi)和對(duì)象-C++對(duì)象模型和this指針->成員變量和成員函數(shù)分開(kāi)存儲(chǔ)、this指針概念、空指針訪(fǎng)問(wèn)成員函數(shù)、const修飾成員函數(shù),c++,開(kāi)發(fā)語(yǔ)言,visualstudio

#include<iostream>
using namespace std;

class Person
{
public:

?? ?Person(int age)
?? ?{
?? ??? ?//1、當(dāng)形參和成員變量同名時(shí),可用this指針來(lái)區(qū)分
?? ??? ?//this指針指向 被調(diào)用的成員函數(shù) 所屬的對(duì)象
?? ??? ?this->age = age;
?? ?}

?? ?Person& PersonAddPerson(Person p)
?? ?{
?? ??? ?this->age += p.age;
?? ??? ?//返回對(duì)象本身
?? ??? ?//this指向p2的指針,而*this指向的就是p2這個(gè)對(duì)象的本體
?? ??? ?return *this;
?? ?}

?? ?int age;
};

void test01()
{
?? ?//1.解決名稱(chēng)沖突
?? ?Person p1(10);
?? ?cout << "p1.age = " << p1.age << endl;
?? ?//2.返回對(duì)象本身用*this
?? ?Person p2(10);
?? ?//鏈?zhǔn)骄幊趟枷?br> ?? ?p2.PersonAddPerson(p1).PersonAddPerson(p1).PersonAddPerson(p1);
?? ?cout << "p2.age = " << p2.age << endl;
}

int main() {

?? ?test01();

?? ?system("pause");

?? ?return 0;
}

C++類(lèi)和對(duì)象-C++對(duì)象模型和this指針->成員變量和成員函數(shù)分開(kāi)存儲(chǔ)、this指針概念、空指針訪(fǎng)問(wèn)成員函數(shù)、const修飾成員函數(shù),c++,開(kāi)發(fā)語(yǔ)言,visualstudio

#include<iostream>
using namespace std;

//空指針調(diào)用成員函數(shù)
class Person
{
public:

?? ?void ShowClassName()
?? ?{
?? ??? ?cout << "我是Person類(lèi)!" << endl;
?? ?}

?? ?void ShowPersonAge()
?? ?{
?? ??? ?if (this == NULL)
?? ??? ?{
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?//報(bào)錯(cuò)原因是傳入的指針為NULL
?? ??? ?cout << this->mAge << endl;
?? ?}

public:
?? ?int mAge;
};

void test01()
{
?? ?Person * p = NULL;
?? ?p->ShowClassName(); //空指針,可以調(diào)用成員函數(shù)
?? ?p->ShowPersonAge();? //但是如果成員函數(shù)中用到了this指針,就不可以了
}

int main() {

?? ?test01();

?? ?system("pause");

?? ?return 0;
}

C++類(lèi)和對(duì)象-C++對(duì)象模型和this指針->成員變量和成員函數(shù)分開(kāi)存儲(chǔ)、this指針概念、空指針訪(fǎng)問(wèn)成員函數(shù)、const修飾成員函數(shù),c++,開(kāi)發(fā)語(yǔ)言,visualstudio

#include<iostream>
using namespace std;

//常函數(shù)
class Person
{
public:
?? ?Person()
?? ?{
?? ??? ?m_A = 0;
?? ??? ?m_B = 0;
?? ?}

?? ?//this指針的本質(zhì)是一個(gè)指針常量,指針的指向不可修改
?? ?//const Person * const this
?? ?//在成員函數(shù)后面加const,修飾的是this指向,讓指針指向的值也不可以修改
?? ?void ShowPerson() const
?? ?{
?? ??? ?//this = NULL;??? //this指針不可以修改指針的指向?? Person* const this;
?? ??? ?//this->mA = 100; //但是this指針指向的對(duì)象的數(shù)據(jù)是可以修改的

?? ??? ?//const修飾成員函數(shù),表示指針指向的內(nèi)存空間的數(shù)據(jù)不能修改,除了mutable修飾的變量
?? ??? ?this->m_B = 100;
?? ?}

?? ?void MyFunc()
?? ?{
?? ??? ?mA = 10000;
?? ?}

public:
?? ?int m_A;
?? ?mutable int m_B; //特殊變量,即使在常函數(shù)中,也可以修改這個(gè)值
};


//const修飾對(duì)象? 常對(duì)象
void test01() {

?? ?const Person person; //在對(duì)象前加const,變?yōu)槌?duì)象 ?
?? ?cout << person.m_A << endl;
?? ?//person.mA = 100; //常對(duì)象不能修改成員變量的值,但是可以訪(fǎng)問(wèn)
?? ?person.m_B = 100;? //但是常對(duì)象可以修改mutable修飾成員變量

?? ?//常對(duì)象只能調(diào)用常函數(shù)
?? ?person.ShowPerson();
?? ?//person.MyFunc(); //常對(duì)象 不能調(diào)用普通成員函數(shù),因?yàn)槠胀ǔ蓡T函數(shù)可以修改屬性
}

int main() {

?? ?test01();

?? ?system("pause");

?? ?return 0;
}

到了這里,關(guān)于C++類(lèi)和對(duì)象-C++對(duì)象模型和this指針->成員變量和成員函數(shù)分開(kāi)存儲(chǔ)、this指針概念、空指針訪(fǎng)問(wèn)成員函數(shù)、const修飾成員函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【C++】:類(lèi)和對(duì)象(上)+ this指針

    【C++】:類(lèi)和對(duì)象(上)+ this指針

    【本節(jié)目標(biāo)】 1.面向過(guò)程和面向?qū)ο蟪醪秸J(rèn)識(shí) 2.類(lèi)的引入 3.類(lèi)的定義 4.類(lèi)的訪(fǎng)問(wèn)限定符及封裝 5.類(lèi)的作用域 6.類(lèi)的實(shí)例化 7.類(lèi)的對(duì)象大小的計(jì)算 8.類(lèi)成員函數(shù)的this指針 C語(yǔ)言是面向過(guò)程的,關(guān)注的是過(guò)程,分析出求解問(wèn)題的步驟,通過(guò)函數(shù)調(diào)用逐步解決問(wèn)題 C++是基于面向?qū)ο?/p>

    2024年02月08日
    瀏覽(23)
  • C++:類(lèi)和對(duì)象(上)---初步認(rèn)識(shí)類(lèi)和this指針

    C++:類(lèi)和對(duì)象(上)---初步認(rèn)識(shí)類(lèi)和this指針

    C語(yǔ)言是一門(mén)面向過(guò)程的語(yǔ)言關(guān)注的是過(guò)程,確認(rèn)一個(gè)問(wèn)題求解的步驟,再一步一步對(duì)它進(jìn)行解決 C++是一門(mén)基于面向?qū)ο蟮恼Z(yǔ)言,它更關(guān)注的是對(duì)象,將一個(gè)事情分成不同的對(duì)象,再用對(duì)象完成問(wèn)題的解決 在C語(yǔ)言中有結(jié)構(gòu)體,但結(jié)構(gòu)體中只能定義變量,而在C++中還可以定義函

    2024年02月16日
    瀏覽(37)
  • 【C++】類(lèi)和對(duì)象詳解(類(lèi)的使用,this指針)

    【C++】類(lèi)和對(duì)象詳解(類(lèi)的使用,this指針)

    提示:這里可以添加本文要記錄的大概內(nèi)容: 在計(jì)算機(jī)編程領(lǐng)域,程序設(shè)計(jì)的方法論不斷演化,從最初的面向過(guò)程到如今更為強(qiáng)大而靈活的面向?qū)ο蟆1疚膶⑸钊胩接慍++中關(guān)于類(lèi)和對(duì)象的概念,為讀者提供對(duì)面向?qū)ο缶幊痰纳羁汤斫狻?提示:以下是本篇文章正文內(nèi)容,下面

    2024年02月02日
    瀏覽(21)
  • C++ 類(lèi)和對(duì)象(一)類(lèi)、訪(fǎng)問(wèn)限定符、this指針

    C++ 類(lèi)和對(duì)象(一)類(lèi)、訪(fǎng)問(wèn)限定符、this指針

    ??????? C++中的類(lèi)(class)是實(shí)現(xiàn)數(shù)據(jù)抽象和面向?qū)ο蟪绦蛟O(shè)計(jì)的核心。本文作為類(lèi)和對(duì)象的開(kāi)篇,將介紹有關(guān)類(lèi)的基礎(chǔ)知識(shí),之后會(huì)持續(xù)更新類(lèi)和對(duì)象的深入內(nèi)容。 目錄 前言 1 類(lèi)的引入 2 類(lèi)的定義 3 訪(fǎng)問(wèn)限定符和封裝 3.1 訪(fǎng)問(wèn)限定符 3.2 封裝 4 類(lèi)的實(shí)例化及類(lèi)對(duì)象的儲(chǔ)存

    2024年02月10日
    瀏覽(28)
  • 【C++干貨基地】六大默認(rèn)成員函數(shù): This指針 | 構(gòu)造函數(shù) | 析構(gòu)函數(shù)

    【C++干貨基地】六大默認(rèn)成員函數(shù): This指針 | 構(gòu)造函數(shù) | 析構(gòu)函數(shù)

    ?? 鴿芷咕 :個(gè)人主頁(yè) ??? 個(gè)人專(zhuān)欄 : 《C++干貨基地》《粉絲福利》 ??生活的理想,就是為了理想的生活! ??哈嘍各位鐵汁們好啊,我是博主鴿芷咕《C++干貨基地》是由我的襄陽(yáng)家鄉(xiāng)零食基地有感而發(fā),不知道各位的城市有沒(méi)有這種實(shí)惠又全面的零食基地呢?C++ 本身作

    2024年03月11日
    瀏覽(20)
  • C++ ------類(lèi)和對(duì)象詳解六大默認(rèn)成員函數(shù)

    C++ ------類(lèi)和對(duì)象詳解六大默認(rèn)成員函數(shù)

    如果我們定義一個(gè)類(lèi),然后這個(gè)類(lèi)中什么也沒(méi)有。那么這里的類(lèi)就什么也沒(méi)有嗎?其實(shí)不然,任何類(lèi)在里面什么都不寫(xiě)時(shí),編譯器都會(huì)生成6個(gè)默認(rèn)成員函數(shù)。 用戶(hù)沒(méi)有顯式實(shí)現(xiàn),編譯器會(huì)生成的成員函數(shù)稱(chēng)為默認(rèn)成員函數(shù)。 六個(gè)默認(rèn)成員函數(shù) 我們來(lái)看一個(gè)Date類(lèi) 觀察上述代

    2024年02月15日
    瀏覽(28)
  • 【C++】類(lèi)和對(duì)象(中篇)----->六大默認(rèn)成員函數(shù)

    【C++】類(lèi)和對(duì)象(中篇)----->六大默認(rèn)成員函數(shù)

    目錄 一、類(lèi)的6個(gè)默認(rèn)成員函數(shù) 二、構(gòu)造函數(shù) ?1、概念? ?2、特性 三、析構(gòu)函數(shù) ?1、概念 ?2、特性 四、拷貝構(gòu)造函數(shù) ?1、概念 ?2、特征 五、賦值運(yùn)算符重載 ?1、運(yùn)算符重載 ?2、值運(yùn)算符重載 ? ?2.1?賦值運(yùn)算符重載格式 ? ?2.2?賦值運(yùn)算符只能重載成類(lèi)的成員函數(shù)不能

    2024年02月12日
    瀏覽(26)
  • 【C++】類(lèi)和對(duì)象②(類(lèi)的默認(rèn)成員函數(shù):構(gòu)造函數(shù) | 析構(gòu)函數(shù))

    【C++】類(lèi)和對(duì)象②(類(lèi)的默認(rèn)成員函數(shù):構(gòu)造函數(shù) | 析構(gòu)函數(shù))

    ?? 個(gè)人主頁(yè): Forcible Bug Maker ?? 專(zhuān)欄: C++ 目錄 前言 類(lèi)的6個(gè)默認(rèn)成員函數(shù) 構(gòu)造函數(shù) 概念 構(gòu)造函數(shù)的特性及用法 析構(gòu)函數(shù) 概念 析構(gòu)函數(shù)的特性及用法 結(jié)語(yǔ) 本篇主要內(nèi)容:類(lèi)的6個(gè)默認(rèn)成員函數(shù)中的 構(gòu)造函數(shù) 和 析構(gòu)函數(shù) 進(jìn)入到類(lèi)和對(duì)象內(nèi)容的第二節(jié),上篇博客中介紹了

    2024年04月16日
    瀏覽(37)
  • 【C++類(lèi)和對(duì)象】類(lèi)有哪些默認(rèn)成員函數(shù)呢?(下)

    【C++類(lèi)和對(duì)象】類(lèi)有哪些默認(rèn)成員函數(shù)呢?(下)

    ヾ(????)?\\\" 人總要為過(guò)去的懶惰而付出代價(jià) ヾ(????)?\\\" 如果一個(gè)類(lèi)中什么成員都沒(méi)有,簡(jiǎn)稱(chēng)為空類(lèi)。 空類(lèi)中并不是什么都沒(méi)有,任何類(lèi)在什么都不寫(xiě)時(shí),編譯器會(huì)自動(dòng)生成以下6個(gè)默認(rèn)成員函數(shù)。 ???????? 默認(rèn)成員函數(shù):用戶(hù)沒(méi)有顯式實(shí)現(xiàn),編譯器會(huì)生成

    2024年02月12日
    瀏覽(33)
  • C++:常成員變量、常成員函數(shù)、常對(duì)象

    C++:常成員變量、常成員函數(shù)、常對(duì)象

    常成員變量: 1.用const修飾,可位于類(lèi)型前后,若是成員變量類(lèi)型為指針則只可位于類(lèi)型后。 即:int? *const? p; 2.只能通過(guò)構(gòu)造函數(shù)的初始化表對(duì)常成員變量進(jìn)行初始化。 3.常成員所在類(lèi)中的所有構(gòu)造函數(shù)都必須對(duì)常成員變量初始化(通過(guò)初始化表)。 4.常成員變量可以被訪(fǎng)

    2024年02月11日
    瀏覽(34)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包