初学C++,有些疑问,请大家帮我澄清一下,请大家看看这段代码

wulingdongliu 2005-03-30 10:30:18
class A{

public :
int a;

void modify(A var);

};

A object_1,object_2;


void A::modify(A var){

a=var.a+2;

object_2=object_1;

}


void main(void){

object_1.a=0;
object_1.modify(object_1);

cout<<"After modify() object_1.a is "<<object_1.a<<"\n";
cout<<"After modify() object_2.a is "<<object_2.a<<"\n";

}
...全文
100 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wulingdongliu 2005-03-31
  • 打赏
  • 举报
回复
谢谢大家,我弄明白了
把形参类型改成指针或者引用类型的就可以在函数内部修改原对象的内容了
forover 2005-03-30
  • 打赏
  • 举报
回复

void A::modify(A var,A &var2){
a=var.a+2;
var2=var;
}

object_1.modify(object_1,object_2);
xiao_xiao_zi 2005-03-30
  • 打赏
  • 举报
回复
原变量没有任何改变
如果是引用的话就会改变
vcmute 2005-03-30
  • 打赏
  • 举报
回复
void A::modify(A &var){
wulingdongliu 2005-03-30
  • 打赏
  • 举报
回复
我的疑问是,将object_1这个参数传递给modify()这个函数时,是重新在内存中新建了一个object_1这个对象,之后在函数modify()中对新建的对象的成员变量a进行修改,原来的那个object_1没有收到任何改变;还是像java一样,只是将object_1这个对象的引用传递给函数从而实现直接操作object_1的成员变量a呢?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧