C++中对象作为函数参php 函数传递对象的问题

扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
c++一个函数怎么调用另一个函数中的参数?例如:void a(){cin>>p;}void b(){ cout
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
一个函数,就象你的函数a其中的变量只在函数被调用时才生成和起作用,函数执行结束,变量p就失效了,所以它的值无法在函数执行后被保存.如果想在函数执行结束后还能保存,需要在变量定义前加个“静态”的修饰,如:但这还是不能被函数以外的语句直接访问.那么就需要将函数的值想办法传出来,或者直接将p的定义提到函数外成为全局变量.
其他类似问题
扫描下载二维码24252627282345678910111213141516171819202122232425262728293031123456
阅读排行榜
评论排行榜温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(2712)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'c++中在一个类中定义另一个只有带参数构造函数的类的对象,编译通不过',
blogAbstract:'#include&iostream&class A{public: A(int i){}};class B{public: B(){}private: //A //这里当然通不过,没有可用的构造函数 A a(5); //但是这里也编译通不过,编译器居然把此语句当成一个定义一个函数A a()了,郁闷!};void main(){ B}我现在想在B类的数据成员中定义A类的对象,但是A类中只有带参数的构造函数,请问如何解决?改成:#include&iostream&',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:9,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}C++语言中函数参数传递方式的图示说明_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C++语言中函数参数传递方式的图示说明
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢C++指针作为函数的参数进行传递时需要注意的一些问题
字体:[ ] 类型:转载 时间:
当指针作为函数的参数进行传递的时候,本质上还是进行的“值传递”,也就是复制了一个新的指向该地址的指针变量
只有在被调函数中,对指针进行引用操作,才可以达到不需要返回值,就对指针指向的变量做出相应的变化。
下面分析这样两个例子;
要求:定义并初始化两个字符串变量,并执行输出操作;然后调用函数使这两个变量的值交换,并且要求被调函数的传值通过传递指针来实现。程序1.1 代码如下:#include&iostream&#include&string&int main(){&& string str1="I love China!",str2="I love JiNan!";&& void Exchange(string *p1,string *p2);&& cout&&"str1: "&&str1&&&& cout&&"str2: "&&str2&&&& Exchange(&str1,&str2);&& cout&&"str1: "&&str1&&&& cout&&"str2: "&&str2&& && return 0;}void Exchange(string *p1,string *p2){&string *p3;&p3=p1;&p1=p2;&p2=p3;}输出结果:
程序1.2 代码如下:#include&iostream&#include&string&int main(){&& string str1="I love China!",str2="I love JiNan!";&& void Exchange(string *p1,string *p2);&& cout&&"str1: "&&str1&&&& cout&&"str2: "&&str2&&&& Exchange(&str1,&str2);&& cout&&"str1: "&&str1&&&& cout&&"str2: "&&str2&& && cout&&&& return 0;}void Exchange(string *p1,string *p2){&string p3;&p3=*p1;&*p1=*p2;&*p2=p3;}输出结果:
通过这两个程序的结果对比,程序1.1中的函数没有达到交换数值的目的,而程序1.2达到了;
因为,在主函数中,主函数把str1和str2的首元素的地址,作为实参传递给了函数Exchange函数;Exchange函数中的,p1用于接收str1的地址,p2用于接收str2的地址,这个过程是进行了值传递。
在程序1.1中,只是指针p1和指针p2的值进行了交换,对原来的字符串str1和str2并没有什么影响;而在程序1.2中,是*p1和*p2的值进行了交换,而*p1就是str1它本身,*p2就是str2它本身,所以实际上是str1和str2进行了交换
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 php 对象作为函数参数 的文章

 

随机推荐