---
# System prepended metadata

title: 'Constructor, Destructor 範例'

---

# Constructor, Destructor 範例

```cpp=
#include<stdio.h>

class User {
    int age;
    
    public:
    int money;
    
    // Constructor：一個和class同名的method，沒有回傳值，參數可自訂
    User(int ageIn) : age(ageIn), money(0) {
        printf("User of age %d and money %d is created.\n", age, money);
    }
    
    // Destructor：一個和class同名的method前面加上~，沒有回傳值，沒有參數
    ~User() {
        printf("User of age %d and money %d is destroyed.\n", age, money);
    }
};

int main() {
    User r(30); // 宣告一個 User 並且利用 constructor 初始化
    
    r.money = 10;
    return 0;
    // r 會在 main() 結束的時候被銷毀，它的 destructor 會被觸發
}
```