Why in the below code when I set c1 = 10
destroys all other values of variables (a
, b
, c
) of the object. The statement should call the constructor and as the constructor is defined it sets the values of a
to 10
, but when I try to access values of b
and c
; it is giving me garbage values.
#include<iostream>
using namespace std;
class abc{
private:
// properties
int a,b, c;
public:
void setdata(int x,int y)
{
a = x;
b = y;
}
void showdata(){
cout << "a = " << a << " b = " << b << "\n";
}
// constructors
abc(){}
abc(int k)
{
a=k;
}
};
int main()
{
abc c1; // object intialization
c1.setdata(6,7); // setting values of properties
c1.showdata(); // printing values
c1 = 10; // primitive to class type conversion, constructor is being called
c1.showdata(); // why value of b and other variables is getting changed ?
return 0;
}
Aucun commentaire:
Enregistrer un commentaire