0
does arrangement matter in this?
hello, why does this code output something which is "yo yo yo" #include <iostream> #include <string> using namespace std; class myClass { private: string name; public: void setName(string x) { name=x; } string getName() { return name; } }; int main() { myClass obj; obj.setName("yo yo yo"); cout << obj.getName(); } and by changing name=x; to x=name; it doesn't output anything???
2 Réponses
+ 1
Definitely Matters.
In name = x ; here x value assigned to name. It works like : target = source; source => target.
In first one, you are passing string into x and assigning to name. Now x, name have values =>"yo yo yo".
In next x = name, name is still unassigned no value, and getting assigned to x. And printing name, now see both x, name have none values.
+ 1
obj.setName sets the value of name variable to yo yo yo and getName() returns it
name=x means assign x value which is yo yo yo to variable name
x=name means assign variable name which is unintialized to variable x which is being passed the yo yo as output ,anyway that's totally valid ,the reason you aren't getting output is because you are returning name variable not x