Answer to Question #189174 in C++ for Khan

Question #189174

Q1:

Write a Program in C++ which completes following requirements:

a. Create a class, having a static function printing some information 

and invoke that method using scope resolution operator.

b. Try to access non-static data members from static method and 

write in comments what happens.

c. Declare and initialize a static variable as counter in a function

(increment it in every call) and call it multiple times printing the 

change in value

d. Write about your observations while making this assignment in a 

word file about static variables and static methods.


1
Expert's answer
2021-05-06T07:20:00-0400
#include <iostream>
using namespace std;


class ClassA{
private:
    //define non-static data member
    int a;

    public:
        //define a static member function
        static void display()
        {
            cout<<"Some Information"<<endl;
            //Try to access non-static data members from static method
            /*cout<<a;  This produces an error:
            invalid use of member MyClass::a in static function
            */
        }
        void myfunction()
        {
            static int counter=1;
            cout<<"\nCalling this function for the "<<counter<<" times";
            counter++;
        }
};




int main()
{
    ClassA::display();
    ClassA c;
    c.myfunction();
    c.myfunction();
    c.myfunction();
    c.myfunction();


    return 0;
}




Observations

  • A static function cannot access or use a non-static variable.
  • A static variable can be used in a non-static function.




Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS