01/10/2018, 00:46
C++ lỗi C3867: non-standard syntax; use '&' to create a pointer to member
Em đang học lập trình hướng đối tượng C++, làm deadline phần class thì gặp phải lỗi này. Mong nhận được sự giúp đỡ của các anh chị bạn
//Diem.h
class Diem
{
private:
double x, y;
public:
Diem();
Diem(double);
Diem(double, double);
void get(Diem A);
double range(Diem A);
void copy(Diem source);
Diem& operator=(const Diem&);
};
//Diem.cpp
double Diem::range( Diem A) {
return sqrt(fabs((A.x - this->x)*(A.x - this->x) + (A.y - this->y)*(A.y - this->y)));
}
//Xe.h
class Xe {
private:
char SoXe[15];
double LXang;
double DungTich;
Diem GPS;
double DoHaoXang;
double Vtb; //Van toc trung binh cua xe
public:
Xe();
void setSoXe(char *a);
void setLXang(double lx);
void setLXang(); //do day binh
void setDungTich(double dt);
void setGPS(Diem G);
void setDoHaoXang(double x);
void setVtb(double v); //km/h
Diem getGPS();
double SDuXang(); //quang duong con di duoc voi luong xang hien tai
TIME DiTiep(Diem& gps);
};
//Xe.cpp
Diem Xe::getGPS() {
return this->GPS;
}
//tinh quang duong con di duoc voi luong xang con lai
double Xe::SDuXang() {
return this->LXang / this->DoHaoXang;
}
//Cho xe di tiep
TIME Xe::DiTiep(Diem& gps) {
double S=0.0;
**S = this->GPS.range(gps);** //do dai quang duong tu vi tri hien tai den dia diem tiep theo **(lỗi ở đây)**
//Kiem tra xem xang co du de di den diem den hay kh?
if (**S <= this->SDuXang**) {
//neu du thi chay, cap nhat GPS va tra ve thoi gian di chuyen
this->setGPS(gps);
double t = S*3600 / this->Vtb;
TIME T;
int i = int(t);
this->LXang = this->LXang - S*this->DoHaoXang;
T.SetTime(i/3600, (i % 3600) / 60, (i % 3600) % 60);
return T;
}
else {
TIME T;
T.SetTime(0, 0, 0);
return T;
}
}
//Tramxang.h
class TramXang {
private:
Diem GPS;
public:
TramXang();
TramXang(Diem gps);
void setGPS(Diem gps);
void DoXang(Xe A);
Diem getGPS();
};
//TramXang.cpp
void TramXang::DoXang(Xe a) {
**if ((this->GPS).range(a.getGPS) <= 0.01)** { //Bị báo lỗi ở đây
a.setLXang();
}
}
Em xin chân thành cảm ơn ạ.
Bài liên quan
This riếc tùm lum. Chỗ nào cần thiết hãng dùng
Các phương thức khi gọi phải có cặp () phía sau, kể cả khi không có tham số đi kèm(Chả hiểu sao VS nó ko báo lỗi cú pháp, theo thầy Định nhận xét có lẽ nó hiểu đang nạp chồng hàm với toán tử @@)
VD:
S <= this->SDuXang();
if ((this->GPS).range(a.getGPS()) <= 0.01) {
//
}
Thử xem đc ko
@Zzero thât là vi diệu… thử rồi cũng hk được
@hoang1379 lúc nào thì mới cần?