Qt物件導向:重載函數(overloading function)

在C++,我們通常定義函數由名字(name),回傳類型(return type),參數列表(parameter list)和虛擬碼(pseudocode)所構成,而重載函數(overloading function)發生在當兩個函數以上使用相同名稱,卻有不一樣的參數列表,但是回傳類型在重載函數是不被考慮的.換句話說,C++編譯器決定使用哪個重載函數是根據傳入的引數(argument)符合哪一個參數列表來決定.

圖一.類別YTDBConnection內成員函數未使用重載

在上一篇QSqlTableModel與QTableView連結,圖一顯示YTDBConnection增加成員函數getTable,在這裡我將getDataList和getTable改名為getData,然後我的主程式時呼叫相同名稱的成員函數時,在圖二的程式碼第17列(row)由於傳入的引數是字串陣列,因此呼叫getData(QStringList &d_list)將從資料庫取值存到一維字串陣列裡.

圖二.類別YTDBConnection成員函數使用重載getData

圖三.在mainwindow.cpp使用重載函數
使用重載函數的優點

  • 主要增加程式的可讀性,例如你要實作整數和浮點數的加法時,由於只是傳入的引數不同,使用相同名稱的函數比起使用不同的函數比較不會造成代碼混淆

GitHub程式碼

  1. QtTutorial / QtProject
    • 這次的重載練習更新在QtProject,你可以看commits觀看程式變化


留言

這個網誌中的熱門文章

VirtualBox教學:重設硬碟(.vdi)大小(上)

VirtualBox教學:重設硬碟(.vdi)大小(下)

VirtualBox教學: 新增Windows7虛擬電腦(下)