Chủ đề: Lỗi phần Template
-
06-05-2014, 04:03 PM #1
Silver member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Lỗi phần Template
Em viết chương trình tạo một lớp template ma trận với các hàm toán tử >>,<< để nhập xuất ma trận.Mình khai báo các hàm toán tử >>,<< là các hàm bạn,nhưng không hiểu vì sao nó lại báo lỗi.Mong các bác pro giúp em sửa lỗi với.Em cảm ơn trước.
Mã:#include<iostream> using namespace std; template<typename T,int m,int n> class matran{ private: T mat[m][n]; public: friend istream& operator>>(istream& in,matran<T,m,n>& B); friend ostream& operator<<(ostream& out,const matran<T,m,n>& B); }; template<typename T,int m,int n> istream& operator>>(istream& in,matran<T,m,n>& B){ for(int i=0;i<m;i++) for(int j=0;j<n;j++){ cout<<"nhap mat["<<i<<"]["<<j<<"]="; in>>B.mat[i][j]; } return in; } template<typename T,int m,int n> ostream& operator<<(ostream& out,const matran<T,m,n>& B){ for(int i=0;i<m;i++) for(int j=0;j<n;j++) out<<B.mat[i][j]<<" "; return out; } int main(){ matran<int,2,3> A; cin>>A; cout<<"ma tran A:"<<endl; cout<<A; system("PAUSE"); return 0; }
View more random threads:
- hỏi về variable và array
- bài tập c++ trong giáo "lập trình hướng đối tượng" - trương công tuấn
- hỏi về hàm lấy ngày trong hệ thống?
- cho em hỏi về hàm scanf("%c,..)
- ký tự điều khiển để kết thúc
- hàm cout trong c++
- con trỏ
- [ Solved ]Hỏi về câu lệnh trong C++
- Lập danh sách bằng file text
- xây dựng lớp, hàm tạo, hàm nhập, xuất thông tin cho đối tượng
-
07-05-2014, 10:46 AM #2
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
sửa lại khai báo trong class matran:
template<typename U, int x, int y>
friend istream& operator>>(istream& in,matran<U,x,y>& B);
template<typename U, int x, int y>
friend ostream& operator<<(ostream& out,const matran<U,x,y>& B);
vì hàm << >> này là friend với mọi T,m,n, nên nó ko thể hard-code T,m,n trong class matran được, nên phải đổi matran<T,m,n> thành matran<U,x,y> (U x y tên gì cũng được miễn đừng là bộ 3 T,m,n). Mà đổi tên như vậy thì phải khai báo U,x,y, vì vậy mới có thêm cái template<typename U, int x, int y> ở đằng trước.
-
14-05-2014, 07:46 PM #3
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Em sửa được rồi.Thanks bác nhiều
xã hội vững mạnh, nhu cầu mặc đẹp của con người ngày càng cao. ngành công nghiệp thời trang cũng đang vững mạnh chóng vánh. những nhà máy gia công hàng may mặc chẳng thể đóng góp lặng thầm vào sự...
Tìm xưởng may gia công tại TP Hồ...