Bạn nào cho mình hỏi : có thể tạo ra 2 class được không ? , vì theo mình hiểu , VD : mình tạo ra 1 class là hosonhanvien , ở trong đó có rất là nhiều hàm : tên tuổi , ngày sinh , quê quán , … class thứ 2 là trinhdolamviec , ở trong đó lại có bằng cấp, sở trường công việc , tính toán 2 số , vd là như thế ^^ . khi chạy chương trình thì không được , cách mình làm có đúng không , và nếu sai thì sai ở chỗ nào ạ . !!
Khai báo class trong hàm có được không?
Bạn tạo bao nhiêu class cũng được nhé? Quan trọng là sử dụng như thế nào, mình chưa hiểu rõ ý bạn, quan hệ giữa 2 class đó là thế nào, có liên quan gì với nhau không ? Hay sử dụng riêng rẽ ???
VD nào vậy bạn ???
Xin lỗi A.ĐẠT nhé , e mới vào trang này hôm nay , chưa hiểu rõ về quy định , có gì mong anh thông cảm
đoạn code của mình như sau :
// TwoClass.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int BienX;
class hosodangky // class 1 của mình
{
public:
void chao()
{
cout << " chao cac ban den voi lop hoc lap trinh c++" << endl;
}
void abc()
{
//TẠO 2 CLASS NHƯ VẦY ĐƯỢC KHÔNG ?
class dangkyhoso // class 2 của mình
{
public:
void tuoi()
{
int tuoi;
cout << " ban bao nhieu tuoi " << endl;
cin >> tuoi;
cout << "- Toi " << tuoi << " tuoi " << endl;
}
};
}
};
int main()
{
hosodangky a;
a.chao();
dangkyhoso tinhtuoi;
tinhtuoi.abc();
system("pause");
}
chỉ cần thêm dòng này #include “stdafx.h” là có thể làm 2 class hả bạn ?
Bài của bạn đưa lên hơi cẩu thả “public viết thành Public”, lỗi tùm lum… mình có chỉnh sửa lại format và dấu {}
bị thiếu… Bạn xem mình sửa lại nội dung có đúng ý bạn hỏi k???
Còn về việc khai báo class thử 2, bạn không nên khai báo trong 1 hàm như vậy. Bài của bạn lỗi cơ bản ở dòng
Vì nó không hiểu class dangkyhoso
ở đây là gì, vì bạn khai báo class dangkyhoso
trong hàm Void abc()
, tức là class đó chỉ dc hiểu trong hàm Void abc()
đó mà thôi.
Đây là code class chứa class (Nested class)
, bạn có thể tham khảo :
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int BienX;
class hosodangky // class 1 của mình
{
public:
void chao()
{
cout << " chao cac ban den voi lop hoc lap trinh c++" << endl;
//TẠO 2 CLASS NHƯ VẦY ĐƯỢC KHÔNG ?
}
class dangkyhoso // class 2 của mình
{
public:
void tuoi()
{
int tuoi;
cout << " ban bao nhieu tuoi " << endl;
cin >> tuoi;
cout << "- Toi " << tuoi << " tuoi " << endl;
}
};
};
int main()
{
hosodangky a;
a.chao();
hosodangky::dangkyhoso tinhtuoi;
tinhtuoi.tuoi();
system("pause");
}
Mình fai bỏ vô ide của mình để chạy code bạn nên nó phát sinh thêm, không fai đâu, bạn đọc comment trên của mình nhé
hosodangky a; // class thứ nhất mình cho nó 1 cái thực thể là a.
a.chao(); //thực thể a gắn với hàn void chao .
hosodangky::dangkyhoso tinhtuoi; // đoạn này là mình chưa hiểu nè , mình mới chỉ biết là có == thôi chứ chưa biết :: là gì cả và tại sao hosodangky::dangkyhoso là như nào hả bạn ??
tinhtuoi.tuoi();
Cái này người ta gọi là : đối tượng a (thể hiện a) gọi thực hiện phương thức Chao()
Vì bạn khai báo class dangkyhoso
bên trong class hosodangky
có nghĩa là class dangkyhoso
có thể coi là 1 biến
của class dangkyhoso
bên trong class hosodangky
có nghĩa là class dangkyhoso
có thể coi là 1 biến
củaclass hosodangky
. (lần sau bạn đừng đặt tên class kiểu này, nhìn đau cả mắt, dễ nhầm).
toán tử ::
dùng để truy xuất tới biến (struct, class..), function
của 1 lớp trong c++;
Bạn hiểu hơn chửa ???
chửa hiểu hơn là mấy , đọc thêm vài lần ắt sẽ hiểu , tks
bạn cho mình hỏi thêm được không ?
phần này mình Ok , vì bạn đã nói class chứa class là mình hiểu rồi .
Vấn đề mình hỏi tiếp là liệu có thể tạo ra 2 class riêng mà chúng không chứa nhau ở trong đó . Vẫn lấy vd đoạn code của bạn sửa cho mình ở trên đó nhá .
Có chứ, bạn tạo bao nhiêu class cũng được mà.
Code
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int BienX;
class hosodangky // class 1 của mình
{
public:
void chao()
{
cout << " chao cac ban den voi lop hoc lap trinh c++" << endl;
//TẠO 2 CLASS NHƯ VẦY ĐƯỢC KHÔNG ?
}
};
class dangkyhoso // class 2 của mình
{
public:
void tuoi()
{
int tuoi;
cout << " ban bao nhieu tuoi " << endl;
cin >> tuoi;
cout << "- Toi " << tuoi << " tuoi " << endl;
}
};
int main()
{
hosodangky a;
a.chao();
dangkyhoso tinhtuoi;
tinhtuoi.tuoi();
system("pause");
}