Trang Chủ   Vn+ TiVi   Fanpage Twitter  Fanpage FaceBook
Loading
                                         

Bản Tin Câu Lạc Bộ Pa Tin Im-Pod                                                                          
Diễn đàn Vn+
Tiêu Điểm

Tình Yêu - Giới Tính

1001 Bí Ẩn

Tổng hợp phần mềm

Ebook

Thủ Thuật IT

Thủ Thuật Blog

Video Clip

Lạ & Fun


You are not connected. Please login or register

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

El Kun

El Kun
Super Moderator
Super Moderator
Quá tải toàn tử nhập xuất và sử dụng template

Code:
/*Chuong trinh nay duoc viet de phuc vu va on tap lai cac kien thuc sau:
 qua tai toan tu nhap xuat ,su dung template de nhan moi kieu tra ve duoc
 truyen vao ,viet lop tuong trung cho tat ca cac lop can su dung khong can phai goi truc tiep .
To viet duoi dang tong quat va de hinh dung hon .Truoc qua tai toan
tu nhap xuat voi doi tuong mang gia tri thi khong co gi nhung nay qua tai
toan tu nhap xuat voi mot mang ki tu thi lai khac va duoi day la mot bai nhu the . */

#include <iostream.h>
#include <conio.h>

//viet lop cat
class cat
{
    private :
        char name[20];
        int age;
    public:
        cat ()
        {
          for (int i=0;i<20;i++)
            name[i]='\0';
            age=0;
        }
    cat (char ten[] ,unsigned int tuoi)
    {
        for (int i=0;i<20;i++)
        {
          name[i]=ten[i];
            if (ten[i]=='\n')
                break;
        }
        age=tuoi;
    }
    friend ostream & operator << (ostream & ,cat &);
    friend istream & operator >> (istream & ,cat &);
};

ostream & operator << (ostream & out ,cat &a)
{
    out<<a.age<<endl;
    out<<a.name<<endl;
    return out;
}
istream & operator >> (istream & in,cat &a)
{
    cout<<"nhap tuoi :";
    in>>a.age;
    in.ignore();
    cout<<"nhap ten:";
    in.getline(a.name,20);
    return in;
}

//viet lop dog
class dog
{
    private :
        char name[20];
        unsigned int age;
    public:
        dog ()
        {
            for (int i=0;i<20;i++)
            name[i]='\0';
            age=0;
        }
        dog (char ten[],unsigned int tuoi)
        {
            for (int i=0;i<20;i++)
            {
                name[i]=ten[i];
                if (ten[i]=='\n')
                break;
          }
            age=tuoi;
      }
  friend ostream & operator << (ostream & ,dog &);
    friend istream & operator >> (istream & ,dog &);
};
ostream & operator << (ostream & out ,dog &a)
{
    out<<a.age<<endl;
    out<<a.name<<endl;
    return out;
}
istream & operator >> (istream & in,dog &a)
{
    cout<<"moi nhap tuoi:";
    in>>a.age;
    in.ignore();
    cout<<"moi nhap ten:";
    in.getline(a.name,20);
    return in;
}

//viet lop tuong trung]
//thu qua tai toan tu nhap va xuat cho lop total nay
template <class T>
class total
{
    private :
        T data;
    public:
        total (total<T> &b)
        {
            data=b.data;
        }
        total (T b)
        {
            data=b;
        }
    friend ostream & operator << (ostream & ,total<T> &);
    friend istream & operator >> (istream & ,total<T> &);
};

    template <class T>
    ostream & operator << (ostream & out ,total<T> &x)
  {
        out<<x.data<<endl;
        return out;
    }
    template <class T>
      istream & operator >> (istream & in,total<T> & x)
    {
        in>>x.data;
        return in;
    }

//viet phan main() cho chuong trinh

void main()
{
//truong hop 1 : thu truyen mot doi tuong khong thuoc cung lop vao cho lop tuong trung
//va su dung ham in va nhap cho no
//khai bao 1 con cat va nhap du lieu ,truyen cho doi tuong lop tuong trung sau do in ra man hinh
    cat a;
  cout<<"moi nhap du lieu cho cat :"<<endl;
        cin>>a;
    total<cat> b(a);
    cout<<b;
    //OK khong loi
    //truong kop 2: truyen vao mot doi la dog cung ra ket qua tuong tu
    //truong hop 3: truyen vao cung kieu la total
    cat x;
    cout<<"moi nhap du lieu cho cat:"<<endl;
    cin>>x;
    total<cat> c(x);
    cout<<"thuc hien phep sao chep :"<<endl;
    total<cat> d(c);
    cout<<d<<endl;
    //OK khong loi vay da thanh cong hoan toan
    getch();
}
//Kinh nghiem rut ra tu bai nay la:
/* khi su dung template de dinh nghia toan tu nhap va xuat ta can de y rang luc xuat ra
la xuat du lieu cua doi tuong .Phai nho doi tuong duoc goi den .Khong duoc xuat ra ngay du lieu
du no la ham friend
- Khi su dung qua tai toan tu ta thay bien "in" su dung y het cin o ngoai khi goi duoc ham
get() or getline () de lay ca ki tu trong' ke ca ham ignore() cung the
- Khi qua tai ta van su dung duoc ham cout or cin o trong qua tai toan tu xuat hay nhap
Dac biet la cho nhap ten can phai tao ra mot mang dinh san khong the de mang dong ,khi khai bao mang
dong ta se bi sai khi xuat ra man hinh .Do khi do di lieu ta nhap vao nam o vung nho buffer
khi chay chuong trinh se vet het tat ca va gan cho bien hoac doi tuong khi ta goi do do'
khong lam gi duoc .
*/ 

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết

 

Legend :  [ Vn-plus Founder ] [ Administrator ] [ Super Moderator ] [ Moderator ] [ Member ] [ VIP member ] [ banned ]



Free Auto Backlink Exchange ServiceFree Backlink Exchange For SeoVietnam BacklinksTravel BacklinksFree BacklinksText Backlink ExchangesText Back Link ExchangeFlorists LinksOverShopping Link ExchangeFree Automatic LinkWeb Link Exchange - Linkcsere

    Diễn Đàn Vn-Plus.Org | Thống kê | Liên hệ | Báo cáo lạm dụng  | Bạn muốn quảng cáo | Lên Đầu Trang

    Powered by: PHPBB2. Copyright © 2011  Diễn Đàn Mở VN+
    Contact: Vn-plus Founder . Yahoo: Nobita_xuka_ccy. Địa chỉ: Từ Tây - Yên Phú - Yên Mỹ - Hưng Yên
    BQT không chịu trách nhiệm bất cứ nội dung nào của thành viên đăng tải

Liên Kết Vớivn+

Free forum | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất