Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Lỗi error C2143: syntax error : missing ',' before '&'

  1. #1
    Ngày gia nhập
    07 2011
    Bài viết
    22

    Mặc định Lỗi error C2143: syntax error : missing ',' before '&'

    Mình xem đi xem lại nhiều lần rồi nhưng vẫn không tìm được cách khắc phục ,mong các bạn xem giúp lỗi sai ở đâu ,cái hàm friend rắc rối quá!
    Code:
    #include <iostream.h>
    
    class Vector
    {
    private:
    	int n;
    	double *p;
    public:
    	Vector();
    	Vector(int nn);
    	Vector(const Vector &u);
    	~Vector();
    	void nhap();
    	void xuat();
    	int layn();
    	friend Vector nhanmV(const matran &u, const Vector &V);
    };
    Vector::Vector()
    {
    	n=0;
    	p=NULL;
    }
    Vector::Vector(int nn)
    {
    	n=nn;
    	p=new double[n];
    }
    Vector::Vector(const Vector &u)
    {
    	n=u.n;
    	p=new double[n];
    	for(int i=0;i<n;i++)
    		p[i]=u.p[i];
    }
    Vector::~Vector()
    {
    	delete []p;
    	p=NULL;
    }
    void Vector::nhap()
    {
    	if(p==NULL)
    	{
    		cout<<"Nhap so chieu: ";
    		cin>>n;
    		p=new double[n];
    	}
    	for(int i=0;i<n;i++)
    	{
    		cout<<"phan tu thu "<<i<<" :";
    		cin>>p[i];
    	
    	}
    }
    void Vector::xuat()
    {
    	for(int i=0;i<n;i++)
    		cout<<p[i]<<"\t";
    	cout<<"\n";
    }
    int Vector::layn()
    {
    	return n;
    }
    class matran
    {
    private:
    	int sd,sc;
    	double **p;
    public:
    	matran();
    	matran(int sd1,int sc1);
    	matran(const matran &u);
    	~matran();
    	void nhap();
    	void xuat();
    	double tongdong(int k);
    	matran cong(const matran &u);
    	matran nhan(const matran &u);
    	int laysd();
    	int laysc();
    	friend Vector nhanmV(const matran &u, const Vector &V);
    };
    matran::matran()
    {
    	sd=0;
    	sc=0;
    	p=NULL;
    }
    matran::matran(int sd1,int sc1)
    {
    	sd=sd1;
    	sc=sc1;
    	p=new double*[sd];
    	for(int i=0;i<sd;i++)
    		p[i]=new double[sc];
    }
    matran::matran(const matran &u)
    {
    	sd=u.sd;
    	sc=u.sc;
    	p=new double*[sd];
    	for(int i=0;i<sd;i++)
    		p[i]=new double[sc];
    	for(i=0;i<sd;i++)
    		for(int j=0;j<sc;j++)
    			p[i][j]=u.p[i][j];
    }
    matran::~matran()
    {
    	for(int i=0;i<sd;i++)
    		delete []p[i];
    	delete []p;
    	p=NULL;
    }
    void matran::nhap()
    {
    	if(p==NULL)
    	{
    		cout<<"Nhap so dong Va cot:";
    		cin>>sd>>sc;
    		p=new double*[sd];
    		for(int i=0;i<sd;i++)
    			p[i]=new double[sc];
    	}
    	for(int i=0;i<sd;i++)
    		for(int j=0;j<sc;j++)
    		{
    			cout<<"phan tu thu ["<<i<<"]["<<j<<"]=";
    			cin>>p[i][j];
    		}
    }
    void matran::xuat()
    {
    	for(int i=0;i<sd;i++)
    	{
    		for(int j=0;j<sc;j++)
    			cout<<p[i][j]<<"\t";
    		cout<<"\n";
    	}		
    }
    
    int matran::laysd()
    {
    	return sd;
    }
    int matran::laysc()
    {
    	return sc;
    }
    double matran::tongdong(int k)
    {
    	double ret=0;
    	for(int i=0;i<sc;i++)
    		ret+=p[k][i];
    	return ret;
    }
    matran matran::cong(const matran &u)
    {
    	matran ret(sd,sc);
    	for(int i=0;i<sd;i++)
    		for(int j=0;j<sc;j++)
    			ret.p[i][j]=p[i][j]+u.p[i][j];
    	return ret;
    }
    matran matran::nhan(const matran &u)
    {
    	matran ret(sd,u.sc);
    		for(int i=0;i<ret.sd;i++)
    			for(int j=0;j<ret.sc;j++)
    			{
    				ret.p[i][j]=0;
    				for(int k=0;k<sc;k++)
    					ret.p[i][j]+=p[i][k]*u.p[k][j];
    			}
    			return ret;
    }
    Vector nhanmV(const matran &u,const Vector &V)
    {
    	Vector ret(u.sd);
    	for(int i=0;i<u.sd;i++)
    	{
    		ret.p[i]=0;
    		for(int j=0;j<V.n;j++)
    			ret.p[i]+=u.p[i][j]*V.p[j];
    	}
    	return ret;
    }
    void main()
    {
    	matran a;
    	a.nhap();
    	cout<<"Ma tran a:\n";
    	a.xuat();
    	Vector b;
    	b.nhap()();
    	cout<<"Vector b:\n";
    	b.xuat();
    	if(a.laysc()==b.layn())
    	{
    		Vector c=nhanmV(a,b);
    		cout<<"Vector c=\n";
    		c.xuat();
    	}
    }

  2. #2
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Cần forward declare class matran ở trước class Vector
    class matran;

  3. #3
    Ngày gia nhập
    07 2011
    Bài viết
    22

    Trích dẫn Nguyên bản được gửi bởi fbchicken Xem bài viết
    Cần forward declare class matran ở trước class Vector
    class matran;
    thank bạn , mình đã làm được !!!!!!!!!

  4. #4
    Ngày gia nhập
    10 2010
    Nơi ở
    Hồ Chí Minh
    Bài viết
    10

    mình nghĩ có thể thêm:friend class matran; vào class vector thì phù hợp với hàm bạn.

Các đề tài tương tự

  1. Trả lời: 7
    Bài viết cuối: 21-09-2012, 12:36 PM
  2. Lập trình C++ Lỗi error C2146: syntax error : missing ';' before identifier 'r'
    Gửi bởi mrmaxi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 31-07-2011, 10:56 AM
  3. Lập trình C bị lỗi "C:\Project\project\firstsource.c(12) : error C2146: syntax error : missing ';' before identifier 'printf'"
    Gửi bởi lapmaihokdc trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 02-07-2011, 07:09 PM
  4. ADO.NET bị lỗi Syntax error (missing operator) in query expression '* fromlop'...giúp em với
    Gửi bởi phieuhung trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 26-04-2011, 11:29 AM
  5. error C2146: syntax error : missing ';' before identifier 'NET_IFTYPE'.
    Gửi bởi Lotches trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 18-04-2009, 09:57 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn