class student
{
private:
int admno;
char sname[20];
class Student_Marks
{
private:
float eng, math, science, computer, Hindi;
float total;
public:
void sMARKS()
{
cin >> eng >> math >> science >> computer >> Hindi;
}
float cTotal()
{
total = eng + math + science + computer + Hindi;
return total;
}
};
public:
void showData()
{
cout << "\n\nAdmission Number :" << admno;
cout << "\nStudent Name :" << sname;
cout << "\nTotal Marks :" << cTotal();
}
};
Je veux appeler la fonction de classe interne cTotal()
, en fonction de classe externe showData()
.
J'obtiens une erreur en accédant à la fonction de classe interne dans la classe externe.
Votre Student_Marks
n'est qu'une définition de classe. Sans avoir un objet de la Student_Marks
classe dans student
, vous ne pouvez pas appeler son membre (par exemple cTotal()
).
Vous pouvez consulter l'exemple de code ci-dessous:
class student
{
private:
int admno;
// better std::string here: what would you do if the name exceeds 20 char?
char sname[20];
class Student_Marks {
// ... code
};
Student_Marks student; // create a Student_Marks object in student
public:
// ...other code!
void setStudent()
{
student.sMARKS(); // to set the `Student_Marks`S members!
}
void showData() /* const */
{
// ... code
std::cout << "Total Marks :" << student.cTotal(); // now you can call the cTotal()
}
};
Lisez aussi: Pourquoi "using namespace std;" considéré comme une mauvaise pratique?
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots