国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

類(lèi)的申明和成員函數(shù)定義分離是什么

汽車(chē)電子技術(shù) ? 來(lái)源:C語(yǔ)言Plus ? 作者:Maye426 ? 2023-02-27 15:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前面我們學(xué)習(xí)了如何定義類(lèi),以及如何使用類(lèi)的成員,在前面我們把成員函數(shù)都定義在了類(lèi)的內(nèi)部,接下來(lái)我們學(xué)習(xí),如何把類(lèi)的定義和成員函數(shù)的實(shí)現(xiàn)分離。

在面向?qū)ο蟮某绦蜷_(kāi)發(fā)中,一般做法是將類(lèi)的聲明(其中包含成員函數(shù)的聲明)放在指定的頭文件中,用戶如果想用該類(lèi),只要把有關(guān)的頭文件包含進(jìn)來(lái)即可,不必在程序中重復(fù)書(shū)寫(xiě)類(lèi)的聲明,以減少工作量,節(jié)省篇幅,提高編程的效率。

由于在頭文件中包含了類(lèi)的聲明,因此在程序中就可以用該類(lèi)來(lái)定義對(duì)象。由于在類(lèi)體中包含了對(duì)成員函數(shù)的聲明,在程序中就可以調(diào)用這些對(duì)象的公用成員函數(shù)。為了實(shí)現(xiàn)上一節(jié)所敘述的信息隱蔽,對(duì)類(lèi)成員函數(shù)的定義一般不放在頭文件中,而另外放在一個(gè)文件中。例如,可以分別寫(xiě)兩個(gè)文件:

Student.h 這是頭文件,在此文僅重進(jìn)行類(lèi)的聲明

#pragma once
 #include
 #include
 #include
 #include
 using namespace std;
 class Student
 {
   private:
   int id;
   int age;
   char name[10];
   public:
   void init(int sid = 0, int sage = 0, const char* sname = "NULL");
   void showStuInfo();
 };

Student.cpp 這是源文件,類(lèi)的所有函數(shù)都在此文件中實(shí)現(xiàn)

#include "Student.h"
 void Student::init(int sid, int sage, const char* sname)
 {
   id = sid;
   age = sage;
   strcpy(name, sname);
 }
 void Student::showStuInfo()
 {
   cout << id << " " << age << " " << name << endl;
 }

為了組成一個(gè)完整的源程序,還應(yīng)當(dāng)有包括主函數(shù)的源文件:

#include"Student.h"//講類(lèi)聲明頭文件包含進(jìn)來(lái)
 int main()
{
     Student cPlus;//定義對(duì)象
     cPlus.init(111,20,"C語(yǔ)言Plus");
     cPlus.showStuInfo();

     return 0;
 }

類(lèi)的申明和成員函數(shù)定義分離注意問(wèn)題

  • 和寫(xiě)在里面一樣,但是需要指定作用域,在外面的函數(shù)名前面加上類(lèi)名,形如【類(lèi)名::函數(shù)名】 :: 雙冒號(hào)是作用域限定符
  • 如果函數(shù)參數(shù)有默認(rèn)參數(shù),那么聲明和實(shí)現(xiàn)不能同時(shí)存在默認(rèn)參數(shù),建議保留聲明中的默認(rèn)參數(shù),讓用戶看到

如果一個(gè)Student.h同時(shí)被多個(gè)文件調(diào)用,每次都要對(duì)包含成員函數(shù)定義的源文件(如上面的student.cpp)進(jìn)行編譯,這是否可以改進(jìn)呢?的確,可以不必每次都對(duì)它重復(fù)進(jìn)行編譯,而只需編譯一次即可。把第一次編譯后所形成的目標(biāo)文件保存起來(lái),以后在需要時(shí)把它調(diào)出來(lái)直接與程序的目標(biāo)文件相連接即可。這和使用函數(shù)庫(kù)中的函數(shù)是類(lèi)似的。這也是把成員函數(shù)的定義不放在頭文件中的一個(gè)好處。(靜態(tài)庫(kù),以后會(huì)講)

在實(shí)際工作中,并不是將一個(gè)類(lèi)聲明做成一個(gè)頭文件,而是將若干個(gè)常用的功能相近的類(lèi)聲明集中在一起,形成類(lèi)庫(kù)。類(lèi)庫(kù)有兩種:

  • C++編譯系統(tǒng)提供的標(biāo)準(zhǔn)類(lèi)庫(kù);
  • 用戶根據(jù)自己的需要做成的用戶類(lèi)庫(kù),提供給自己和自己授權(quán)的人使用,這稱為自定義類(lèi)庫(kù)。

在程序開(kāi)發(fā)工作中,類(lèi)庫(kù)是很有用的,它可以減少用戶自己對(duì)類(lèi)和成員函數(shù)進(jìn)行定義的工作量。

類(lèi)庫(kù)包括兩個(gè)組成部分:

  • 類(lèi)聲明頭文件;
  • 已經(jīng)過(guò)編譯的成員函數(shù)的定義,它是目標(biāo)文件。

用戶只需把類(lèi)庫(kù)裝入到自己的計(jì)算機(jī)系統(tǒng)中(一般裝到C++編譯系統(tǒng)所在的子目錄下),并在程序中用#include命令行將有關(guān)的類(lèi)聲明的頭文件包含到程序中,就可以使用這些類(lèi)和其中的成員函數(shù),順利地運(yùn)行程序。這和在程序中使用C++系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)的方法是一樣的,例如用戶在調(diào)用sin函數(shù)時(shí)只需將包含聲明此函數(shù)的頭文件包含到程序中,即可調(diào)用該庫(kù)函數(shù),而不必了解sin函數(shù)是怎么實(shí)現(xiàn)的(函數(shù)值是怎樣計(jì)算出來(lái)的)。

當(dāng)然,前提是系統(tǒng)已裝了標(biāo)準(zhǔn)函數(shù)庫(kù)。在用戶源文件經(jīng)過(guò)編譯后,與系統(tǒng)庫(kù)(是目標(biāo)文件)相連接。在用戶程序中包含類(lèi)聲明頭文件,類(lèi)聲明頭文件就成為用戶使用類(lèi)的公用接口,在頭文件的類(lèi)體中還提供了成員函數(shù)的函數(shù)原型聲明,用戶只有通過(guò)頭文件才能使用有關(guān)的類(lèi)。用戶看得見(jiàn)和接觸到的是這個(gè)頭文件,任何要使用這個(gè)類(lèi)的用戶只需包含這個(gè)頭文件即可。包含成員函數(shù)定義的文件就是類(lèi)的實(shí)現(xiàn)。

請(qǐng)?zhí)貏e注意:類(lèi)聲明和函數(shù)定義一般是分別放在兩個(gè)文本中的。由于要求接口與實(shí)現(xiàn)分離,為軟件開(kāi)發(fā)商向用戶提供類(lèi)庫(kù)創(chuàng)造了很好的條件。

開(kāi)發(fā)商把用戶所需的各種類(lèi)的聲明按類(lèi)放在不同的頭文件中,同時(shí)對(duì)包含成員函數(shù)定義的源文件進(jìn)行編譯,得到成員函數(shù)定義的目標(biāo)代碼。軟件商向用戶提供這些頭文件和類(lèi)的實(shí)現(xiàn)的目標(biāo)代碼(不提供函數(shù)定義的源代碼)。用戶在使用類(lèi)庫(kù)中的類(lèi)時(shí),只需將有關(guān)頭文件包含到自己的程序中,并且在編譯后連接成員函數(shù)定義的目標(biāo)代碼即可。

由于類(lèi)庫(kù)的出現(xiàn),用戶可以像使用零件一樣方便地使用在實(shí)踐中積累的通用的或?qū)S玫念?lèi),這就大大減少了程序設(shè)計(jì)的工作量,有效地提高了工作效率。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)部
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    18974
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64893
  • 定義
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    14447
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    強(qiáng)大的matlab:在類(lèi)中實(shí)現(xiàn)static成員變量 (轉(zhuǎn)帖)

    。static成員函數(shù)在不創(chuàng)建類(lèi)對(duì)象的時(shí)候直接調(diào)用。很不幸的是MATLAB不支持static成員變量,只能定義static
    發(fā)表于 03-07 10:42

    為labview類(lèi)創(chuàng)建自定義探針

    通過(guò)自定義探針來(lái)訪問(wèn)需要訪問(wèn)的LabVIEW類(lèi)成員vi信息,廢話不說(shuō)直接寫(xiě)原理過(guò)程:1. 創(chuàng)建一個(gè)demo.Lvproj2. Write data為成員vi3.上圖為main.vi4.
    發(fā)表于 03-22 10:32

    函數(shù)申明是int而不是void

    如下是定時(shí)中斷的主函數(shù),為什么函數(shù)申明是int,而不是void呢?沒(méi)有返回值??! int main(void){ Stm32_Clock_Init(9); //系統(tǒng)時(shí)鐘設(shè)置 delay_init
    發(fā)表于 04-02 00:00

    vc的常用類(lèi)成員函數(shù)

    CRect:用來(lái)表示矩形的類(lèi),擁有四個(gè)成員變量:top left bottom right。分別表是左上角和右下角的坐標(biāo)。可以通過(guò)以下的方法構(gòu)造:
    發(fā)表于 08-02 06:33

    類(lèi)成員函數(shù)中const的使用,有什么注意事項(xiàng)?

    類(lèi)成員函數(shù)中const的使用,有什么注意事項(xiàng)?
    發(fā)表于 04-26 06:42

    類(lèi)成員函數(shù)與普通函數(shù)的區(qū)別研究

    本文的目的是研究類(lèi)成員函數(shù)與普通函數(shù)之區(qū)別,以及不同調(diào)用方式之間的區(qū)別,進(jìn)而通過(guò)內(nèi)聯(lián)匯編語(yǔ)句模仿特定的調(diào)用,從而完成通過(guò)普通函數(shù)指針調(diào)用
    發(fā)表于 09-15 14:52 ?32次下載

    內(nèi)聯(lián)函數(shù)詳解

    什么是內(nèi)聯(lián)性和外聯(lián)函數(shù) 類(lèi)成員函數(shù)可以分為內(nèi)聯(lián)函數(shù)和外聯(lián)函數(shù)。內(nèi)聯(lián)
    發(fā)表于 11-02 14:05 ?0次下載

    如何在CAA中定義全局函數(shù)

    如果在編譯時(shí)出現(xiàn)使用了未定義類(lèi)ExportedByGlobal的錯(cuò)誤,是因?yàn)樵谌?b class='flag-5'>函數(shù)所在的類(lèi)的頭文件中沒(méi)有包含Global.h,其中Global是全局
    發(fā)表于 04-03 14:24 ?8次下載

    EE-128:C++中的DSP:從C++調(diào)用匯編類(lèi)成員函數(shù)

    EE-128:C++中的DSP:從C++調(diào)用匯編類(lèi)成員函數(shù)
    發(fā)表于 04-16 17:04 ?2次下載
    EE-128:C++中的DSP:從C++調(diào)用匯編<b class='flag-5'>類(lèi)</b><b class='flag-5'>成員</b><b class='flag-5'>函數(shù)</b>

    2.10 學(xué)生類(lèi)-構(gòu)造函數(shù) (15分)

    10 學(xué)生類(lèi)-構(gòu)造函數(shù) (15分)定義一個(gè)有關(guān)學(xué)生的Student類(lèi),內(nèi)含類(lèi)成員變量: Stri
    發(fā)表于 12-29 19:05 ?1次下載
    2.10 學(xué)生<b class='flag-5'>類(lèi)</b>-構(gòu)造<b class='flag-5'>函數(shù)</b> (15分)

    QObject中常使用的成員函數(shù)和重要宏定義

    每個(gè)對(duì)象都有一個(gè)objectName(),可以通過(guò)相應(yīng)的metaObject()找到它的類(lèi)名(函數(shù):QMetaObject::className())。在實(shí)際開(kāi)發(fā)中可以使用inherits()函數(shù)確定對(duì)象的
    的頭像 發(fā)表于 02-20 09:42 ?1859次閱讀

    函數(shù)結(jié)構(gòu)的定義和例程說(shuō)明

    在理解拷貝構(gòu)造函數(shù)前,還是有必要回顧下類(lèi)的構(gòu)造函數(shù)基本概念。類(lèi)的構(gòu)造函數(shù)是一種特殊的成員
    的頭像 發(fā)表于 04-19 11:35 ?1392次閱讀

    C++11新的類(lèi)功能(特殊成員函數(shù)、override和final)

    C++11在原有的4個(gè)特殊成員函數(shù)(默認(rèn)構(gòu)造函數(shù)、復(fù)制構(gòu)造函數(shù)、復(fù)制賦值運(yùn)算符和析構(gòu)函數(shù))的基礎(chǔ)上新增了移動(dòng)構(gòu)造
    的頭像 發(fā)表于 07-18 16:02 ?729次閱讀

    python定義函數(shù)與調(diào)用函數(shù)的順序

    定義函數(shù)與調(diào)用函數(shù)的順序 函數(shù)定義后,本身是不會(huì)自動(dòng)執(zhí)行的,只有在被調(diào)用后,函數(shù)才會(huì)被執(zhí)行,得
    的頭像 發(fā)表于 10-04 17:17 ?2134次閱讀

    EE-128:C語(yǔ)言中的DSP:從C調(diào)用匯編類(lèi)成員函數(shù)

    電子發(fā)燒友網(wǎng)站提供《EE-128:C語(yǔ)言中的DSP:從C調(diào)用匯編類(lèi)成員函數(shù).pdf》資料免費(fèi)下載
    發(fā)表于 01-07 13:48 ?0次下載
    EE-128:C語(yǔ)言中的DSP:從C調(diào)用匯編<b class='flag-5'>類(lèi)</b><b class='flag-5'>成員</b><b class='flag-5'>函數(shù)</b>