Cách sử dụng biến trong Class trong C++?
Em mới học class, xem bài giảng anh Đạt thì ít quá không hiểu được, cách sử dụng biến trong class
Như code ở dưới:
-
Em muốn nhập, xuất giờ (private) thì phải nhập như thế nào, trong hàm main và cả ngoài hàm main?. Code ở dưới em truyền sẳn vì ko biết cách nhập ^^.
-
Nếu các biến đều khai báo là “private” vậy mình phải get/set từng biến ?
-
Em xin tài liệu về class C++ đơn giản dễ hiểu 1 tý, google em không hiểu gì luôn ^^. (Video anh Đạt dễ hiểu mà thiếu, video anh Sơn thì không có khúc bắt đầu, …)
#include <iostream>
class ThoiGian
{
public:
void setGio(int x)
{
gio = x;
}
int getGio()
{
return gio;
}
private:
int gio;
};
int main(){
ThoiGian x1;
int gio;
std::cout << "Nhap vao so gio: ";
x1.setGio(5);
std::cout << x1.getGio();
system("pause");
return 0;
}
Muốn nhập giờ bạn thêm dòng
std::cin>>gio;
.@tuancoi2506 … kiểu này ko nhập được anh ơi, nếu giống anh thì mình phải khai báo thêm biến giờ trong main, giờ này nó là private sao anh nhập kiểu thế được, nó làm gì hiểu giờ nằm ở đâu.
Cái này là em nhập xuất trong class, nhưng mà vẫn không biết cách lấy giá trị ra. Em muốn nhập xuất ngoài class và cách lấy giá trị luôn đó ạ.
Đúng rồi bạn. Biến
private
thì chỉ dùng dc trong phạm vi class đó thôi. Mình khai báoprivate
sau đó dùng các hàmget, set
để bảo vệ dữ liệu, người dùng muốn truy xuất đến các biếnprivate
của bạn thì fai quaget,set
, nên bạn có thể quản lý việc truy xuất đó. Ví dụ, bạn không cho phép ng dùng gán biếngio
là 1 số âm. thì bạn làm như sau:Nhưng mà cái này nhập và truy xuất như thế nào đó ạ, em ko biết cái này, em chỉ biết get/set dùng để đóng gói. Theo bài giảng của anh Đạt get/set là gán trực tiếp vào rồi.
Phải khai báo biến trong hàm main thì đúng ùi,biến
gio
trong hammain
khác biếngio
trong class của e nhé. Nó chỉ trùng tên thôi. Em có thể để tên biến trong ahmf main làabc
cũng được vậy.Nhập ngoài class thì e làm dc rồi đó thôi, muốn lấy giá trị thì e viết các hàm như
getgio()
đấy, giờ viết thêmgetphut()
,getgiay()
là được mà. Rồi gọi:int sophut=GetPhut()
Thêm biến trong main rồi nhập em thấy nó sao sao ấy …
Thế còn nhập ngoài class và cả ngoài main thì thế nào đây anh ^^
Sao là sao e? vì
private
nên fai làm vậy thôi.E có thể tạo 1 hàm nhập với giá trị trả về là 1 đối tượng
ThoiGian
, trong hàm main() hoặc ngoài hàm main e tạo 1 thể hiện của đối tượngThoiGian
, rồi gán nó cho giá trị hàm nhập đó.Chồng toán tử nhập
Khi một class có các data fields là private, bạn buộc phải thay đổi chúng qua một công cụ public nào đó, ở đây là các functions set() và get() được khai báo tại vùng public, điều này giúp ta kiểm soát việc thay đổi và sử dụng các private data members của class, không cho phép một chương trình khác không thuộc class có quyền thay đổi và sử dụng các dữ liệu này.
Trong bài của bạn, nếu bạn muốn nhập giá trị bất kỳ truyền vào hàm set của class, bạn có thể khai báo thêm 1 biến n nào đó, nhập giá trị n bất kỳ từ bàn phím, và sau đó x1.setGio(n); vậy là xong rồi.
Đúng, phải get/set từng biến, sắp tới bạn sẽ học về Constructor (hàm dựng) cho phép bạn gán giá trị ban đầu cho một object được khai báo ra.
Bạn nên tìm sách để đọc, sách tiếng Anh càng tốt.