Is it okay to do this?

Code:
#include<iostream>


int main()
{

    class someclass
    {
     public:
     void function(someclass&);
     
    // private:
     int a;
     };
     someclass someclassobject;
     someclassobject.a=16;
    
 cout<<someclassobject.a<<endl;
 function(someclassobject.a);
 cout<<someclassobject.a;

 return 0;    
}

void someclass::function(someclass& a)// error here
{
 a=18;

}