iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
Software Development

C++超級菜鳥也可以懂的物件導向攻略系列 第 15

Day 15 - C++ 物件導向4 - Method與Function

  • 分享至 

  • xImage
  •  

之前三篇物件導向類別Class物件Object建構子Constructor歡迎接續觀看

前言:

  • function作用是裝方式、作法(return a+b;或是cout << "hello";等等)的分類箱。
  • Struc是放variable(int, string...等等)的分類箱。
  • Class是把上面兩個都可以一起放的分類箱。

在物件導向概念中,class裡的function有個不一的名字,叫做 method。
(而昨天提到的constructor是特殊版本的function。)
啊他們的作用是相同的。

Method小知識

  • 跟function一樣要加上資料類型data type回傳值,例如:void method_name、string method_name()、int method_name()
    (資料類型解說
  • 跟function一樣要呼叫才會執行,但一定要擺object名字在前面,如示範:object_name.method();
  • 承接class中public、private的概念,可以視需要把method放在相應位置。

有趣的來了,Method可以放在class裡,也可以放在class外,如以下示範:
放在裡面

    class Hello{
    public:
        void say(){
        cout << "Hello!" <<endl;
        }
    };
    int main(){
        Hello sample; // object called sample;
        sample.say(); //call method named say
    }

放在外面時要注意,要依循放上資料類別 class名字::method()
void Hello::say()

class Hello{
};
   void Hello::say(){
       cout << "Hello!" << endl;
   }
int main(){
    Hello sample;
    sample.say();
}

function跟method比比看

來示範一下用function跟method輸出最簡單的"Hello world",就更能清楚地了解如何選擇要用哪個喔!

function:

#include<iostream>
using namespace std:
function say(){
    cout << "Hello world";
}

Class.Method()

#include<iostream>
using namespace std:
class Hello{
public:
    void say(){
        cout << "Hellow world" << endl;
    }
private:
}; //記得要加上 ;

int main(){
    Hello newObject;
    newObject.say();
}

Reference: Geeksforgeeks, CSDN, w3school, cplusplus


上一篇
Day14 - C++ 物件導向3 - Constructor 建構子/建構函數
下一篇
Day16 - C++物件導向 int\string轉換() 應用和刷題
系列文
C++超級菜鳥也可以懂的物件導向攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言