Hàm khởi tạo khi viết class trong C++

Sign Up

Log In

Hàm khởi tạo khi viết class trong C++

Mọi người cho em hỏi trong C++ khi khai báo 1 class, khi nào thì cần viết hàm khởi tạo Constructor ạ? Có nhất thiết class nào cũng cần phải viết hàm khởi tạo không ạ? Em cảm ơn

Nhất thiết phải tạo hàm khởi tạo(Constructor) nhé.
Vì không có hàm nào này thì Object làm sao được tạo trong vùng nhớ được.

1 Like

Nếu không viết hàm khởi tạo nào (kể cả copy constructor) thì trình dịch sẽ tự tạo cho bạn 1 hàm khởi tạo mặc định. Bạn tìm hiểu thêm về class, cách để khai báo 1 đối tượng của class thì đến lúc cần sẽ tự biết khi nào cần viết constructor :smiley:

Khi cần phải xử lý, hoặc muốn xử lý một cái gì trước tất cả mọi cái khi đối tượng được tạo ra thì viết nó trong constructor, nếu không thì không cần viết.

lấy 1 ví dụ là hiểu liền nek!
ví dụ bạn không nhập vào cái ji mà bạn chỉ yêu cầu xuất ra màn hình, thì khi đó cái trình biên dịch nó vẫn cho bạn in ra, nhưng vì không nhập nên nó in ra giá trí rác ( giá trị này bạn hok mong muốn). Để tránh tình trạng này thì bạn khai báo constructor (defult constructor) thì nó sẽ in ra những cái mặc định khi bạn quên viết hàm nhập :v

This post was flagged by the community and is temporarily hidden.

Như bạn nói thì có nghĩa là không nhất thiết phải viết Constructor nếu mình có hàm nhập, viết Constructor chỉ để tránh tình trạng khi chưa có hàm nhập (chưa có giá trị để in) thì chương trình vẫn in ra giá trị khởi tạo đúng không ạ? Mình có 1 bài nhập thông tin người gửi, người nhận chuyển phát nhanh và tính chi phí rồi in ra màn hình, mình không dùng Constructor nhưng nó vẫn chạy và ra đáp án đúng. Vì thế mình không hiểu có nhất thiết phải có Constructor hay không?

Mình cũng nghĩ class nào cũng cần Constructor nhưng có bài mình không viết Constructor mà chương trình vẫn chạy đúng, và có cả 1 số bài trong giáo trình cũng không có Constructor, vì thế mình thắc mắc lúc nào thì cần viết, lúc nào không cần viết Constructor

hêh. nếu bài tập của bạn mà nếu hok nhập mà chỉ có xuất thì :
cái nào mà kiểu string thì nó để rỗng ( tên, địa chỉ chẳng hạn)
-cái nào mà kiểu int… thì nó ra 1 cái kiểu hexa tùm lum nhé

Đó là bình thường mà, vì nếu chương trình bạn viết đúng, đủ thì cái default nó hok dùng mà nó xài cái bạn cài đặt nên lúc này contructor có vẻ vô dụng lúc này !

Nếu không viết hàm khỏi tạo thì chương trình sẽ tạo hàm khởi tạo mặt định (hay khởi tạo không có tham số) để chạy.

Home
Categories
FAQ/Guidelines
Terms of Service
Privacy Policy


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?