Comment appeler une fonction de classe interne en classe externe?


NoobMaster69
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.

JeJo

Votre Student_Marksn'est qu'une définition de classe. Sans avoir un objet de la Student_Marksclasse 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?

Articles connexes


Comment appeler une fonction sur une classe interne

AndroidDev Le code suivant est publié sur le site Web de Kotlin: class A { // implicit label @A inner class B { // implicit label @B fun Int.foo() { // implicit label @foo val a = this@A // A's this val b = this@B // B's thi

Comment appeler une classe interne / imbriquée avec une fonction

Daniel Je ne sais pas si le titre décrit correctement mon problème. C'est peut-être un peu trompeur. Je veux appeler la classe Decoder dans ma classe ABC avec la fonction func1 (qui se trouve dans ma classe ABC) mais je ne peux pas le faire fonctionner. class