-
29-04-2016, 12:13 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Lỗi con trỏ p trong Class Vector, giúp em với ạ.
Em viết code như sau:
//Vector.h
Mã:class CVector { private: int n; double *p; public: CVector(); CVector(int); CVector(const CVector &); ~CVector(); void Nhap(); void Xuat(); int LayN(); CVector Cong(const CVector &); CVector Tru(const CVector &); CVector Nhan(double); //Nhân với một số thực double Nhan(const CVector &); //Nhân hai vector };
Mã:#include "stdafx.h" #include "Vector.h" #include <iostream> #include <conio.h> #include <math.h> using namespace std; CVector::CVector() { n = 0; p = new double[n]; for (int i = 0; i <= n; i++) p[i] = 0; } CVector::CVector(int nn) { n = nn; p = new double[n]; for (int i = 0; i <= n; i++) p[i] = 0; } CVector::CVector(const CVector &u) { n = u.n; p = new double[n]; for (int i = 0; i < n; i++) { this->p[i] = u.p[i]; } } int CVector::LayN() { return n; } void CVector::Nhap() { for (int i = 0; i < n; i++) { cout << "Nhap toa do thu [" << i << "]: "; cin >> this->p[i]; } } void CVector::Xuat() { cout << "Vector: ("; for (int i = 0;i < n - 1; i++) { cout << this->p[i] << ","; } cout << this->p[n - 1] << ")"; } CVector CVector::Cong(const CVector &u) { CVector temp; temp.n = u.n; temp.p = new double[temp.n]; for (int i = 0; i < n; i++) { temp.p[i] = this->p[i] + u.p[i]; } return temp; } CVector CVector::Tru(const CVector &u) { CVector kq; kq.n = n; kq.p = new double[kq.n]; for (int i = 0; i < n; i++) { kq.p[i] = this->p[i] - u.p[i]; } return kq; } CVector CVector::Nhan(double x) { CVector kq; kq.n = n; kq.p = new double[kq.n]; for (int i = 0; i < n; i++) { kq.p[i] = this->p[i] * x; } return kq; } double CVector::Nhan(const CVector &u) { double kq1=0; for (int i = 0; i < n; i++) { kq1 = kq1 + (this->p[i] * u.p[i]); } return kq1; } CVector::~CVector() { delete []p; }
Bác nào giỏi giúp em vụ này với ạ.View more random threads:
- lỗi khó hiểu khi send dữ liệu qua mạng lan
- Cách import một project vào cửa sổ solution explorer?
- Sử Dụng Hàm SetTimer trong Static Thread ???
- API SetWindowText() don't update now on design dialog
- Cấu trúc các class của MFC
- error C2679: binary '<<' : no operator defined which takes a right-hand operand
- STDMETHOD trong VC++ có tác dụng gì?
- vòng lặp
- [C++] Xem chương trình tốn bao nhiêu bộ nhớ
- Vẽ hiệu ứng quanh viền chữ nhật trong VC++?
-
29-04-2016, 02:30 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
về hàm cộng thì có lẽ thế này
Mã:CVector CVector::Cong(const CVector &u) { CVector *temp=new CVector; temp->n = u.n; temp->p = new double[temp->n]; for (int i = 0; i < n; i++) { temp->p[i] = this->p[i] + u.p[i]; } return *temp; }
-
03-05-2016, 06:41 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình thử rồi, kết quả vẫn vậy
-
04-05-2016, 10:09 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi jungsunghyo
Mình viết như #2 thì thấy ổn muh. Thậm chí return thẳng 1 object trên Ideone còn được.
Mình nghĩ là thớt nên (chính xác là buộc phải) cài đặt cái operator= vì thế nào thớt cũng viết:
Mã:CVector a,b;/* doing something */CVector c = a.Cong(b);
-
04-05-2016, 07:09 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Hàm tạo mặc định, cho n == 0, cấp phát bộ nhớ và for, viết thừa ?
Mã:CVector::CVector(){ n = 0; p = new double[n]; for (int i = 0; i <= n; i++) p[i] = 0;}
Mã:CVector CVector::Cong(const CVector &u){ CVector temp; temp.n = u.n; temp.p = new double[temp.n]; for (int i = 0; i < n; i++) { temp.p[i] = this->p[i] + u.p[i]; } return temp;} CVector CVector::Tru(const CVector &u){ CVector kq; kq.n = n; kq.p = new double[kq.n]; for (int i = 0; i < n; i++) { kq.p[i] = this->p[i] - u.p[i]; } return kq;} double CVector::Nhan(const CVector &u){ double kq1=0; for (int i = 0; i < n; i++) { kq1 = kq1 + (this->p[i] * u.p[i]); } return kq1;}
-
26-05-2016, 04:57 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
đã ra chưa bạn. [IMG]images/smilies/dont_know.gif[/IMG]
-
26-05-2016, 05:03 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
@^^ Quăng exception chứ còn sao nữa, chủ yếu là thớt ko hề nghĩ đến chuyện này, nhưng mà như vậy là không thể chấp nhận được.
@^ Xong rồi bạn [IMG]images/smilies/biggrin.png[/IMG]
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...