不能在类型上使用点运算符

cannot use dot operator on a type

本文关键字:点运算 运算符 类型 不能      更新时间:2023-10-16

嗨,所以我基本上是编码的新手,我的第一类/header程序遇到了这个问题。

(cartest.cpp是主要的,它没有完成,只是想检查一切的进展方式(扰流板警报不好))

car.hpp

class car {
private: 
string carid;
string carName;
double car_capacity ;
double benzinverbrauch;
double _fillLevel;
double _milage;
public:
bool refuel (const double benzinmenge);
double drive (double dist);
double fillLevel();
double reach();
double milage();
};

car.cpp

#include "car.hpp"

bool car::refuel (double benzinmenge) {
if (benzinmenge+_fillLevel <=car_capacity){
    _fillLevel=benzinmenge+_fillLevel;
    return true;
}
else {
    return false;
};
};
 double car::drive (const double dist){
if (reach()<=dist) {
    _fillLevel=0;
    return reach();}
else {
    _fillLevel=_fillLevel-(dist*benzinverbrauch/100);
    return dist;
};
};
double car::reach (){
return (_fillLevel*100)/benzinverbrauch;
};
 double car::fillLevel()
    {return _fillLevel;};
  double car::milage()
    {return _milage;};

cartest.cpp

#include "car.hpp"
int main(){
double car_capacity=50 ;
double benzinverbrauch=50;
double _fillLevel=0;
car.refuel (20.0);
cout<<car.fillLevel()<<endl;
}

继续@jonathon Reinhart的评论,班级定义了您的对象的表现。但是,您也需要具有这种行为的对象。要声明变量,语法为:

<Class> <object>

例如:

car c;

要使用函数,您需要使用对象。语法是:

<object>.<function>

例如:

c.refuel(20.0);