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

Đề tài: OOP_ Chút vấn đề...

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    1

    Mặc định OOP_ Chút vấn đề...

    Có một project được tổ chức như sau:

    File Complex.h:
    Code:
    #ifndef _CComplex_H
    #define _CComplex_H
    #include "Global.h"
    
    class CComplex {
    	friend ostream& operator<<(ostream&, const CComplex&);
    	friend istream& operator>>(istream&, CComplex&);
    	friend int operator==(const CComplex&, const CComplex&);
    	friend int operator>(const CComplex&, const CComplex&);
    public:
    	CComplex();
    	CComplex(const CComplex&);
    	CComplex(int,int);
    	~CComplex();
    	void operator=(const CComplex&);
    	double abs();
    private:
    	double dThuc;
    	double dAo;
    };
    
    #endif
    File Complex.cpp:
    Code:
    #include "Complex.h"
    #include "Global.h"
    
    //	Constructor functions
    CComplex::CComplex() { dThuc = 0; dAo = 0; }
    CComplex::CComplex(int Thuc, int Ao) : dThuc(Thuc), dAo(Ao) {}
    
    //	Copy constructor
    CComplex::CComplex(const CComplex& num) : dThuc(num.dThuc), dAo(num.dAo) {}
    
    //	Destructor function
    CComplex::~CComplex() {}
    
    //	Overloading Operator Functions
    ostream& operator<<(ostream& ostr, const CComplex& num)
    {
    	ostr << num.dThuc << " + " << num.dAo << "i";
    	return ostr;
    }
    
    istream& operator>>(istream& istr, CComplex& num)
    {
    	istr >> num.dThuc >> num.dAo;
    	return istr;
    }
    
    void CComplex::operator=(const CComplex& num)
    {
    	dThuc = num.dThuc;
    	dAo = num.dAo;
    }
    
    int operator==(const CComplex& num1, const CComplex& num2)
    {
    	return (num1.abs() == num2.abs());
    }
    
    int operator>(const CComplex& num1, const CComplex& num2)
    {
    	return (num1.abs() > num2.abs());
    }
    
    //	Absolute function
    double CComplex::abs()
    {
    	return sqrt(dThuc*dThuc + dAo*dAo);
    }
    File Global.h:
    Code:
    #include <iostream.h>
    #include <conio.h>
    #include <math.h>
    File main.cpp:
    Code:
    #include "Global.h"
    #include "Complex.h"
    
    int main()
    {
    	CComplex num1;
    	CComplex num2;
    	CComplex num3(4,5);
    	cout << num1 << endl;
    	cin >> num1;
    	cout << num1 << endl;
    	num2 = num1;
    	cout << num2 << endl;
    	if (num1 == num3)
    		cout << "Bang nhau!" << endl;
    	else cout << "Khong bang!" << endl;
    	double Abs = num3.abs();
    	cout << Abs << endl;
    	_getch();
    	return 0;
    }
    Khi biên dịch, nó báo lỗi nư sau:
    Code:
    Compiling...
    Complex.cpp
    g:\thuchanh\c++\oop_\chapter03_\complex.cpp(35) : error C2662: 'abs' : cannot convert 'this' pointer from 'const class CComplex' to 'class CComplex &'
            Conversion loses qualifiers
    g:\thuchanh\c++\oop_\chapter03_\complex.cpp(35) : error C2662: 'abs' : cannot convert 'this' pointer from 'const class CComplex' to 'class CComplex &'
            Conversion loses qualifiers
    g:\thuchanh\c++\oop_\chapter03_\complex.cpp(40) : error C2662: 'abs' : cannot convert 'this' pointer from 'const class CComplex' to 'class CComplex &'
            Conversion loses qualifiers
    g:\thuchanh\c++\oop_\chapter03_\complex.cpp(40) : error C2662: 'abs' : cannot convert 'this' pointer from 'const class CComplex' to 'class CComplex &'
            Conversion loses qualifiers
    Error executing cl.exe.
    
    Chapter03_.exe - 4 error(s), 0 warning(s)
    Mấy huynh giải thích dùm chỗ sai dùm em tí nghen, với lại cách sửa nữa. Cảm ơn nhiều ^^.
    Em dùng visual C++ 6.0.
    Đã được chỉnh sửa lần cuối bởi trhthong : 29-11-2008 lúc 01:33 AM.
    No has any italy ant aunt give firm eat

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

  1. cho mình hỏi chút về lập trình C
    Gửi bởi bangbi trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 04-01-2014, 02:34 AM
  2. Hỏi đáp Cho mình hỏi một chút!
    Gửi bởi dejokuondi trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 5
    Bài viết cuối: 28-10-2011, 07:07 PM
  3. vui chút khí thu các bác
    Gửi bởi kitti trong diễn đàn Giải trí - Thư giãn
    Trả lời: 14
    Bài viết cuối: 18-10-2010, 09:47 PM
  4. Mày để cho nó một chút
    Gửi bởi layrick trong diễn đàn Giải trí - Thư giãn
    Trả lời: 1
    Bài viết cuối: 26-09-2010, 12:05 AM
  5. Cho mình hỏi chút về con trỏ
    Gửi bởi ktwiz trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 16-03-2008, 11:19 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