01/10/2018, 11:52
Lỗi invalid use of member (did you forget the '&' ?) khi gán
Đề bài : Viết Class :Tìm sinh viên có điểm trung bình lớn nhất
Code của mình:
#include <iostream>
#include <string>
using namespace std;
class sinhvien{
string hoten,masv;
double toan ,ly ,hoa;
char gioitinh[3];
public:
void thongtinsv(sinhvien a[],int n){
system("cls");
for (int i=1;i<=n;i++){
fflush(stdin);
cout <<"Sinh vien thu " << i <<endl;
cout <<"Nhap ten hoc sinh: ";getline(cin,a[i].hoten);
cout <<"Nhap ma sinh vien: ";getline(cin,a[i].masv);
cout <<"Gioi tinh: ";gets (a[i].gioitinh);
do{
fflush(stdin);
cout <<"Nhap diem toan: ";cin >>a[i].toan;
if(toan<0 || toan >10){
cout <<"
Ban da nhap sai!Vui long nhap lai.";
}}
while(toan<0 || toan >10 );
do{
cout <<"Nhap diem ly: ";cin >>a[i].ly;
if(ly<0 || ly >10){
cout <<"
Ban da nhap sai!Vui long nhap lai.";
}}
while(ly<0 || ly >10);
do{
cout <<"Nhap diem hoa: ";cin >> a[i].hoa; cout << endl;
if(hoa<0 || hoa >10){
cout <<"
Ban da nhap sai!Vui long nhap lai.";
}}
while(hoa<0 || hoa >10);}}
double trungbinh(){
double trungbinh= (toan + ly + hoa)/3;
return trungbinh;
}
double kiemtra(sinhvien a[],int n){
double max = 0;
for (int i=1;i<=n;i++){
if (a[i].trungbinh > max)
max = a[i].trungbinh;}
cout << max;
return max;}
};
int main (){
sinhvien b[10],a;
int n;
cout <<"Nhap so sinh vien:";
cin >> n;
a.thongtinsv(b,n);
a.kiemtra(b,n);
}
Ở dòng code 48-55,khi chạy nó sẽ báo lỗi
51 [Error] invalid use of member (did you forget the ‘&’ ?)
52 [Error] cannot convert ‘sinhvien::trungbinh’ from type ‘double (sinhvien::)()’ to type ‘double’
Cho hỏi là phép gán ở đây vướng lỗi gì ạ ? Và cái dấu & tại sao phải dùng ở đây nhỉ ?
Bài liên quan
// code
max
, vìmax
là tên 1 hàm trong C++.