作者Elfiend (小孩)
看板TransCSI
标题[问题] 程式:C++ 台大90 第五、六题
时间Mon May 23 18:06:52 2005
台大90年度转学考计概第六题
1 #include <iostream>
2 using namespace std.
3 class Ex {
4 public:
5 Ex(){p = new int;}
6 void set(int i){*p = i;}
7 int get(){return *p;}
8 private:
9 int *p;
10 }
11
12 int main(){
13 Ex test1,test2;
14 test1.set(-1);
15 cout<< test1.get() <<"";
16 test2.set(-2);
17 test1=test2
18 cout<< test1.get() <<"";
19 test2.set(-3);
20 cout<< test1.get() <<endl;
21 return 0;
22 }
=====================================
对类别的看法是→公有的:二个函数set(设值)get(取值)可以给其他使用
私有的: *p 内部自己使用的指标,不被外部程式影响
而我的问题是第17行:test1=test2
这个等号的意义是什麽???
如果私有的不被外部程式影响,那这个等号应该没有作用,所以会输出 -1 -1 -1
如果这里会影响,传的是*p的值,那应该会输出 -1 -2 -2
如果这里会影响,传的是p的值 ,那就是 -1 -1 -3
哪个才对呢?我对类别的应用觉得很头大...
台大90年度转学考计概第五题
1 #include <iostream>
2 using namespace std;
3
4 int what( const char *s){
5 int j;
6 for(j=0; *s!='\0'; s++)++j
7 return j;
8 }
9
10 int main(){
11 char *st={"this is a test."};
12 cout << what(st);
13 return 0;
14 }
这题的问题是字串的储存与应用方式
对於第六行的for里 *s!='\0' s是指字串的开头位置吧,
所以12行的st就是传一个位置给what函数,
但是 4行的定义是 const char *s 这不是字串吗?
传一个位置过去,却用字串的定义接受???
还有,如果第六行的*s是单指一个字母,那怎样才是整个字串??
是我的哪个观念出错了???请帮忙指正,谢谢回应唷。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.139.131.77