1

这是问题所在:

在控制台.cpp

void Console::PrintMedicine(Medicine* m){
    int ID = Medicine.getID(); //here i get the error expecting primary expression before "." token, it doesn't work with -> either
    cout<<"The Medicine's ID is: ";
    cin>>ID;
}

医学类:

什么是私人的:

private:
    int ID;
    std::string nume;
    double concentratie;
    int cantitate;

什么是公开的

public:
    Medicine();  //implcit constructor
    Medicine(int ID, std::string nume, double concentratie, int cantitate);//constructor with parameteres
    ~Medicine(); //destructor

//获取ID函数

        const int& Medicine::getID() const{
    return this->ID;
}

//getName函数

const std::string& Medicine::getName() const{
    return this->nume;
}

//获取浓度函数

const double& Medicine::getConcentration() const{ 
    return this->concentratie;

}

//getQuantity 函数

const int& Medicine::getQuantity() const{
    return this->cantitate;
}
4

1 回答 1

2

表达式Medicine.getID()不正确。Medicine是一个的名称,你不能使用点运算符来访问它的成员。首先,您需要一个要访问其成员的实例Medicine其次,如果您有指向该实例的指针,则需要使用箭头运算符 ( operator ->)。

因此,它应该是:

void Console::PrintMedicine(Medicine* m){
    int ID = m->getID();
//           ^^^

// ...
}
于 2013-03-31T21:59:31.137 回答