-
15-08-2010, 04:31 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cách viết hàm chồng cho phép = như thế nào?
Mã:typedef struct sinhvien // khai bao 1 cau truc la sinh vien { int masv; // ma sinh vien char hoten[30]; // ho ten char lop[15]; // lop float diemtb; // diem trung binh struct sinhvien *tiep; // dung de tro sang phan tu tiep theo ( su dung co che fifo) }sv;
View more random threads:
- [ Solved ]( Bài tập lớn OOP )Quản lý bầu cử
- Soát lỗi giúp mình với
- Mới học C có nên dùng IDE: Visual C++
- xem giùm em bài tập đọc chữ số của số có 3 chữ số
- Tạo thư viện
- số kí tự tối đa của hàm gets()
- Cách chuyển đổi một số từ dạng Little Endian sang Big Endian
- Cách gọi đệ quy
- vòng lặp để giải phuơng trình nghiêm nguyên
- Bài tập về stack
-
15-08-2010, 05:36 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
có ai đang lang thang đêm khuya thì giúp mình cái mai có tiết chữa bài tập rồi!
-
15-08-2010, 05:53 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
thấy bạn cần nên nháy đúp vào cái vc
bạn xem được chưa nhé, mình không quen typedef nên bỏ đi nha, mình để nguyên cái code của bạn đấy:
Mã nguồn PHP:#include <iostream>#include <string.h>using namespace std;struct sinhvien // khai bao 1 cau truc la sinh vien{ int masv; // ma sinh vien char hoten[30]; // ho ten char lop[15]; // lop float diemtb; // diem trung binh sinhvien *tiep; // dung de tro sang phan tu tiep theo ( su dung co che fifo) void show(){cout << "masv: " << masv << " hoten: " << hoten << " lop: "<< lop << " tb: " << diemtb << endl; } sinhvien& operator = (const sinhvien&); };sinhvien& sinhvien::operator=(const sinhvien &a){ masv=a.masv; diemtb=a.diemtb; strcpy(hoten,a.hoten); strcpy(lop,a.lop); tiep=a.tiep; return *this;}int main(){ sinhvien a; a.masv=5; strcpy(a.hoten,"vietduc"); strcpy(a.lop,"cvet"); a.diemtb=9; a.tiep=NULL; sinhvien b; b=a; a.masv=6; strcpy(a.hoten,"vietduc111"); strcpy(a.lop,"cvet111"); a.diemtb=91; a.tiep=NULL; a.show(); b.show(); return 0;}
-
15-08-2010, 06:16 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
cảm ơn bạn nhiều. Bạn có thể giải thích tại sao lại có mấy cái sinhvien& sinhvien:: với tác dụng của const và tại sao phải là &a được không?
mình đọc tài liêu thấy ghi là (kiểu trả về ) operator (toán tử)(danh sách tham số) nên mình chưa thực sự hiểu được vấn đề cho lắm
-
15-08-2010, 06:40 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi hoaxuyenchi
"(kiểu trả về ) operator (toán tử)(danh sách tham số)"
kiểu trả về là sinhvien&, cho toán tử gán "=", tham số là 1 đứa sinh viên khác
&a để cho nó truyền tham biến vào cho nhanh, cái const trước a để không làm thay đổi cái a
sinhvien& sinhvien::
sinhvien& (kiểu trả về )
sinhvien:: <? như kiểu bảo là hàm này là thuộc về struct sinh viên>
-
20-08-2010, 04:47 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
cảm ơn bạn đã giúp đỡ. cơ bản đã hiểu. Nhưng còn thắc mắc cái là mình điền
sinhvien& thanh sinhvien thì vẫn đúng vậy bạn sử dụng thêm dấu & sau tên của kiểu để làm gì?
-
20-08-2010, 04:49 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi hoaxuyenchi
-
20-08-2010, 04:54 PM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Giá trị trả về của hàm opeator= phụ thuộc vào mục đich sử dụng của biểu thức gán. Chúng ta chọn giải pháp trả về tham chiếu đứng bên trái dấu = nhằm giữ 2 tính chất quan trọng của phép gán
+ trật tự kết hợp từ phải sang trái
+ Có thể sử dụng kết quả biểu thức gán trong các biểu thức khác
Ngoài ra giải pháp này cũng hạn chế việc sao chép dữ liệu từ nơi này đi nơi khác trong bộ nhớ
Ngọc Bích xanh bản chất thuộc dòng đá đá hoa (jade). Và cẩm thạch là tên gọi chung của ngọc bích. Vì thực chất chúng thuộc dòng đá đa khoáng được hình thành từ chất Silicat dưới dạng dioxy. Ngọc bích...
Chia sẻ Vòng tay ngọc bích xanh là...