为什么此代码的工作方式与预期不同?我认为它的工作正常,是吗?

时间:2017-06-29 13:27:41

标签: debugging codeblocks

这是我应该做的。

enter image description here

这就是我所做的。(在带有minGW编译器的代码块IDE上)

#include <iostream>

using namespace std;

class person

{
private:
string name;
int age;
double height;
double weight;
public:
void set_private_members(string n, int a, double h, double w)
{
    name = n;
    age = a;
    weight = h;
    height = w;
}
void print_private_members()
{
    cout <<"The name of person is:- "<<name<<"\n The age of person is:- "  <<age<<"\n The weight of person is:- "<<weight;
    cout <<"\n The height of person is:- "<<height<<endl;
}
};

void modify_person(person);

int main()

{
person p;
p.set_private_members("Ayush",19,165.7,47.2);
cout <<"We are in main function right now \n";
p.print_private_members();
modify_person(p);
cout <<"We are now back in main function \n The values of object passed  to modify_person function are as \n";
p.print_private_members();

return 0;
}

void modify_person(person z)
{
cout <<"We are in modify_person function \n Modifying person details... \n";
z.set_private_members("Priyanshi",15,159.1,50.6);
cout <<"The details are now as:- \n";
z.print_private_members();
}

以下是此代码的输出

enter image description here

但是,当在main()中最后一次调用print_private_members函数时,预期的输出是在类对象中有priyanshi细节。

谁错了?我还是他们?我想如果我通过引用调用modify_person那么预期就应该来了。

0 个答案:

没有答案