OOP cơ bản và toán tử nhập xuất trong C++?

Mình đang tìm hiểu về oop cơ bản mà thực sự nó cứ lằng nhằng kiểu gì ấy. Mình có 1 bài thế này, mong mọi người giúp, đọc tài liệu hoài mà nó cứ lằng nhằng, hy vọng đọc code sẽ hiểu hơn.

Đề như sau:

Viết 1 chương trình nhập danh sách sinh viên.

1.Dùng class sinh viên có các thành phần tên,mssv,dtb
2.Dùng toán tử << >> nhập xuất.
3.Viết hàm Khởi tạo,sao chép,phá hủy
4.Dùng con trỏ quản lí danh sách sinh viên.
5.Nếu có thể dùng kế thừa để làm gì đấy thì càng tốt.

Cuối cùng mình xin cảm ơn các bạn nhiều

.

1 Like

Vậy mình bắt đầu từ những cái đơn giản trước

Bạn làm được cái này không?

1 Like
 class SinhVien
 {
     char HoTen[30];
     char MSSV[8];
     float Dtb;
 public:
     SinhVien();
 };

Em mới biết được nhiêu đây. :frowning:

1 Like

Anh góp ý trình bày class như thế này

class SinhVien
{
public:
    SinhVien();
private:
    char HoTen[30];
    char MSSV[8];
    float Dtb;
};

Nên để public trước rồi private sau

3.Viết hàm Khởi tạo,sao chép,phá hủy

Em làm được cái này không? Làm cái này trước đi, nó dễ hơn.

2.Dùng toán tử << >> nhập xuất.

Có cao thủ nào giúp được cái này không :smile:

@Su_Su có thể coi sơ qua cái này: Quá tải operator xem có thể copy được gì không?

2 Likes

Khi em nhập thì sau một dấu space thì xong 1 cái.Làm sao để nhập giống kiểu dùng getline

#include <iostream>
#include <conio.h>
#include<string>
#include<string.h>
using namespace std;
class SinhVien
    {
	private:
		char HoTen[30];
		char MSSV[8];
		float Dtb;
	public:
		friend void operator>>(SinhVien &sv,istream &is);
		friend void operator <<(SinhVien sv,ostream &os);
    };
void operator>>(SinhVien &sv,istream &is)
    {
		cout<<"Nhap ho ten : ";  //Theo anh @ltd có nên để cái này trong hàm này không ạ?
		is>>sv.HoTen;
		cout<<"Ma so sv : ";
		is>>sv.MSSV;
		cout<<"Diem trung binh : ";
		is>>sv.Dtb;
    }
void operator<<(SinhVien sv,ostream &os)
    {
		os<<sv.HoTen<<"\n"<<sv.MSSV<<"\n"<<sv.Dtb;
    }
void main(void)
    {
        system("cls");
        SinhVien a;
        a>>cin;
        a<<cout;

        getch();
    }

sao bạn không để các toán tử >>, << trả về tham chiếu cho dễ xài nhỉ?

1 Like

Là sao @Bui_Trung_Thong ???
Bạn có thể bỏ ít thời gian code giùm mình vài dòng được không?

bạn nên kiếm cuốn sách C++ và lập trình hướng đối tượng của giáo sư pham văn ất về đọc.
Cuốn đó là kinh điển của C++.

1 Like
  http://www.tutorialspoint.com/cplusplus/input_output_operators_overloading.htm

bạn tham khảo cái này dễ hình dung hơn, bạn không hiểu chỗ nào thì nói để mình giải thích cho ? :blush:
nói chung mình cũng mới học thôi

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