欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++類模板以及保存數(shù)據(jù)到文件方式

 更新時(shí)間:2023年08月04日 09:52:38   作者:喜歡干飯的小白  
這篇文章主要介紹了C++類模板以及保存數(shù)據(jù)到文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C++類模板及保存數(shù)據(jù)到文件

題目要求

寫(xiě)一個(gè)類模板,它有一個(gè)通用數(shù)組(既可作整數(shù)數(shù)組,又可作雙精度小數(shù)數(shù)組,

它有三個(gè)成員函數(shù),

其功能分別是,從鍵盤讀取數(shù)據(jù)到數(shù)組、將數(shù)組數(shù)據(jù)保存到某個(gè)文件中、求數(shù)組中的最大元素。

代碼實(shí)現(xiàn)

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
template <class T>
class MyArray
{
public:
    /*從鍵盤讀數(shù)據(jù)到數(shù)組*/
    void readData(int n)
    {
        cout<<"請(qǐng)輸入數(shù)組:"<<endl;
        for(int i = 0;i<n; i++)
        {
            cin>>arr[i];
        }
        cout<<"輸入完畢!"<<endl;
    };
    /*將數(shù)組數(shù)據(jù)保存到文件中*/
    void saveFile(int n)
    {
        ofstream file;
        file.open("xie.txt", ios::in);//打開(kāi)文件,可以指定位置,在雙引號(hào)里加 D:\\C++語(yǔ)言測(cè)試\\xie.txt
        if(!file)
        {
            cout<<"xyz.txt cannot open"<<endl;
            abort();//用于中止當(dāng)前進(jìn)程。 對(duì)于異常的程序終止–我們可以使用abort()函數(shù) 。
        }
        for (int i = 0; i < n; i++)
            file << i << "  " << fixed << setprecision(8) << arr[i] << endl;//fixed << setprecision(8)是為了保留小數(shù)點(diǎn)后8位進(jìn)行寫(xiě)入
        file.close();//關(guān)閉文件,保存文件。
        cout<<"已保存到文件中"<<endl;
    };
    /*求數(shù)組中的最大元素*/
    void maxArray(int n)
    {
        T maxNum = arr[0];
        for(int i = 1;i<n;i++)
            if(arr[i] > maxNum)
                maxNum = arr[i];
        cout<<"max: "<<maxNum<<endl;
    }
private:
    T arr[20];//定義一個(gè)通用數(shù)組,也就是說(shuō)可以存儲(chǔ)整數(shù)數(shù)組,也可以存儲(chǔ)浮點(diǎn)數(shù)數(shù)組等等
};
int main()
{
    cout<<"------------------------傳入整數(shù)數(shù)據(jù)---------------------------"<<endl;
    MyArray<int> myarray1;
    myarray1.readData(5);
    myarray1.saveFile(5);
    myarray1.maxArray(5);
    cout<<"------------------------傳入小數(shù)數(shù)據(jù)---------------------------"<<endl;
    MyArray<double> myarray2;
    myarray2.readData(5);
    myarray2.saveFile(5);
    myarray2.maxArray(5);
    return 0;
}

C++(文件,模板,類模板)知識(shí)點(diǎn)

1.文件操作

類對(duì)象:ofstream,  ifstream,  fstream。

第一步:打開(kāi)文件:fd.open("teat.txt",ios::in | ios::out)

第二步:操作讀寫(xiě):內(nèi)部含有流的讀寫(xiě)指針(偏移)seek

寫(xiě):塊  write  格式化 fprintf    << 行 fputs   字符  putc

讀:塊  read   格式化 fscanf    <<  行 fgets  getline  字符  getc

判斷結(jié)尾:eof

流緩存區(qū)刷新:flush

2.模板

本質(zhì):使用一個(gè)萬(wàn)能的虛擬類型

單類定義:template  <class  類型名稱>

多類定義:template  <class  類型名稱1,class  類型名稱2>

多個(gè)虛擬類型則使用逗號(hào)隔開(kāi)。注意:虛擬類型

3.類模板

作用:建立一個(gè)通用類,類中的額成員數(shù)據(jù)類型可以不具體指定用一個(gè)虛擬的類型來(lái)代表

本質(zhì):使用一個(gè)萬(wàn)能的虛擬類型

單類定義:template  <class  類型名稱>

多類定義:template  <class  類型名稱1,class  類型名稱2>

多個(gè)虛擬類型則使用逗號(hào)隔開(kāi)。

注意事項(xiàng):

(1)虛擬類型只有后一句代碼有效(if,for,while)

(2)實(shí)例化模板類的時(shí)候必須使用  <類型> 置頂顯示類型

(3)模板那類成員類外實(shí)現(xiàn)的時(shí)候需要加上虛擬類型聲明才可以

(4)模板函數(shù)的創(chuàng)建時(shí)機(jī)——(運(yùn)行)調(diào)用的時(shí)候

(5)類模板盡量不要分文件編寫(xiě)。

如果硬要分文件編寫(xiě)則只能引入源文件,不能引入頭文件。

如果我們定義一個(gè)  .hpp  的文件存放模板類的所有代碼直接引入  .hpp  文件即可

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論