请将下列构造函数补充完整,使得程序的运行结果是5
2017-08-12 09:23
92 查看
请将下列构造函数补充完整,使得程序的运行结果是5
原题地址:https://www.nowcoder.com/test/question/done?tid=9799426&qid=46329#summary#include<iostream> using namespace std; class Sample{ public: Sample(int x){ ________ } ~Sample(){ if(p) delete p; } int show(){ return *p; } private: int*p; }; int main(){ Sample S(5); cout<<S.show()<<endl; return 0; }
A : *p=x;
B : p=new int(x);
C : *p=new int(x);
D : p=&x;
解析:
A、*p = x,把x的值赋值给指针p指向的内存空间,但是p之前没有指向任何一块内存空间,所以这个操作非法
B、p = new int(x),新申请一块内存空间,内存空间中的值是x,并且把这块内存空间赋值给p,p也就指向了这块内存空间。并且程序结束后也不释放这块内存空间。
C、*p = new int(x)。由于p之前没有指向任何一块内存空间,所以直接给*p赋值是错误的。(*p表示p指向的内存空间。)
D、p = &x,表示把x的地址赋值给p,但是这里的x 是形参,函数调用结束后x就被释放了,所以*p就找不到x了。
最后正确答案是:B
有错误请批评指正,作者是正在学习中的c++小白。。。
相关文章推荐
- 请将下列构造函数补充完整,使得程序的运行结果是5
- 实验九指针1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 实验9 指针1 、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依
- 下列程序的运行结果是
- 实验9 指针1 1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 习题8:编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。
- 分析并写出下列程序的运行结果
- 8.1分析并写出下列程序的运行结果。
- 指出下列程序的正确运行结果()
- 实验9(1)程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 运行下列程序,会产生的结果是
- 写出下列程序在X86 上的运行结果。
- 将下列程序补充完整
- 6.分析并写出下列程序的运行结果
- 补充说明的程序运行结果
- 分析并写出下列程序的运行结果
- 第十二周项目一 阅读程序,请写出这些程序的运行结果(4)
- 编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 + 2 + 34–5 + 67–8 + 9 = 100。
- 【用脚趾头解决NOIP】(3)NOIP2010普及组阅读程序写运行结果
- 运行一个命令或程序获取结果/正则表达式查找匹配/分隔字符串