1. ホーム
  2. c++

[解決済み] 型にドット演算子を使用することはできません。

2022-02-09 15:12:53

質問

こんにちは、基本的に私はコーディングの初心者で、最初のクラス/ヘッダー・プログラムでこの問題が発生しました。

(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);

投稿する前にクラスとオブジェクトを勉強したほうがいいのでは?YouTubeで無料で見られるチュートリアルがたくさんあります。私は、あなたが新人だからといって、この投稿を否定したわけではありません。しかし、二度とこのような間違いをしないように。スタックオーバーフローで何かを質問する前にググってください。