第九講 c 的class

2021-07-31 10:51:07 字數 1507 閱讀 2163

本文的編寫是為了在學習c++的時候加深自己的記憶,同時也為與我一般的初學者提供一些參考,

此處特別感謝

1.在文章開始之前先說一下簡單的資料型別和0的比較:

(1)int型資料比較簡單,可以直接和0比較,即if(int i == 0)或者if(int i != 0)

(2)指標型資料比較是和null進行比較,即if(*i == 0)或者if(*i != 0)

(3)double(float)型資料存在精度,不能直接和0進行比較,可定義乙個接近0的double(float)數值,比如double a=0.0001, if (double b>-a)&&(b

(4)bool型資料只需要比較0和非0,即if(a)或者if(!a)

2.那麼接下來我們就開始學習c++d的類

(1)宣告函式模板:template或者template

當然可以定義不止乙個型別,可以多個,只是每個型別的名字不同:template

此次給出乙個例子:

//從乙個陣列裡面找出最小的元素:

template//定義型別

t min(t(&in_array)[size])//定義函式min

return min; }

(2)建構函式,拷貝函式,賦值函式,析構函式 ①

建構函式的名字與類的名字相同,沒有返回型別,但是有引數列表(可能為空)和函式體(可能為空)。建構函式的作用是初始化類物件的資料成員,當類的物件被建立時就會執行建構函式。

②拷貝函式,作用在於把乙個物件的值拷貝給另外乙個物件

③賦值函式,通過賦值操作「=」給物件賦值

④析構函式,用於銷毀物件佔的記憶體空間

(3)給出乙個輸入表的時間,輸出時針和分針的角度。一般開始寫類的專案時,可以寫三個文件,乙個是原始檔.h的類宣告,乙個是宣告對應的類定義.cpp,還有乙個就是呼叫的主函式main()。下面給出乙個簡單的事例:

函式的宣告

#pragma once

#include

#include

using namespace std;

class clock1 ;

已宣告的函式的定義

#include"clock.h"

clock1::clock1() :m_mm(0),m_hh(0), diff(0.0)

clock1::~clock1()

clock1& clock1::sethh(int hh)

clock1& clock1::setmm(int mm)

int clock1::gethh()

int clock1::getmm()

void clock1::diffa()

void clock1::show()

//clock_main主函式

#include"clock.h"

int main()

return 0;}

(4)訪問控制與封裝

①public://可被整個程式訪問

②private://被類的成員函式訪問

第九講問題

第九講0.3工程編譯後執行時影象一閃而過,終端顯示 key frame size 0 double free or corruption out 已放棄 核心已轉儲 解決辦法 把cmakelists.txt中的 set cmake cxx flags std c 11 march native 03...

Python 第九講 切片

切片 取乙個list或tuple的部分元素是非常常見的操作。比如,乙個list如下 l michael sarah tracy bob jack 取前3個元素,應該怎麼做?笨辦法 l 0 l 1 l 2 michael sarah tracy 之所以是笨辦法是因為擴充套件一下,取前n個元素就沒轍了。...

第九講 變數替換

變數替換,替換變數中的字元 變數替換的基本形式 變數名 被替換字元 替換字元 替換字元 會替換變數中每個 被替換字元 先來看個例子 echo off rem 設定乙個變數 set var qq大戰360 rem 替換變數中的 大戰 為 pk 顯示出來 echo var 大戰 pk pause rem...