问个C++中给类的数据成员赋值的问题,2种方式,差别在哪里呢?? 20
第一个源程序:#include<iostream>usingnamespacestd;classTest{private:inta,b;public:voidAdd();...
第一个源程序:
#include<iostream>
using namespace std;
class Test
{
private:
int a,b;
public:
void Add();
void GetData(int NewA,int NewB);//差别在此处!!!
};
void Test::Add()
{
cout<<"a+b="<<a+b<<endl;
}
void Test::GetData(int NewA,int NewB)
{
cin>>NewA>>NewB;
a=NewA;
b=NewB;
}
void main()
{
int x,y;
Test t1;
t1.GetData(x,y);
t1.Add();
}
这个里面,是通过给NewA,和NewB赋值,然后在把NewA,和NewB的值分别赋值给a,b。
第二个源程序:
#include<iostream>
using namespace std;
class Test
{
private:
int a,b;
public:
void GetData();//差别在此处!!!
void Add();
};
void Test::GetData()
{
cin>>a>>b;
}
void Test::Add()
{
cout<<"a+b="<<a+b<<endl;
}
void main()
{
Test t1;
t1.GetData();
t1.Add();
}
这个是直接输入数据成员a,b的值,然后来运算的。
请问下,这2个方法,哪个更好呢???
或者,还有更好的赋值方式?
谢谢了哈 展开
#include<iostream>
using namespace std;
class Test
{
private:
int a,b;
public:
void Add();
void GetData(int NewA,int NewB);//差别在此处!!!
};
void Test::Add()
{
cout<<"a+b="<<a+b<<endl;
}
void Test::GetData(int NewA,int NewB)
{
cin>>NewA>>NewB;
a=NewA;
b=NewB;
}
void main()
{
int x,y;
Test t1;
t1.GetData(x,y);
t1.Add();
}
这个里面,是通过给NewA,和NewB赋值,然后在把NewA,和NewB的值分别赋值给a,b。
第二个源程序:
#include<iostream>
using namespace std;
class Test
{
private:
int a,b;
public:
void GetData();//差别在此处!!!
void Add();
};
void Test::GetData()
{
cin>>a>>b;
}
void Test::Add()
{
cout<<"a+b="<<a+b<<endl;
}
void main()
{
Test t1;
t1.GetData();
t1.Add();
}
这个是直接输入数据成员a,b的值,然后来运算的。
请问下,这2个方法,哪个更好呢???
或者,还有更好的赋值方式?
谢谢了哈 展开
展开全部
个人认为第一个方法比较好,因为你用了临时变量NewA和NewB,大型程序里面能直接修改数据成员的地方很少,而且不安全(向你的第二个就直接复制给A和B),合理的使用临时变量是个很好的习惯
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询