同学,看来你基础很差:
1.因为你要将一个值赋给index(3),所以index(3)是一个变量,只有变量才能被赋值,所以
index (int i)只能返回引用,完整函数如下:int &index(int i){return a[i];}这样的话index(i)就是a[i]的另一个名字,而不是只等于a[i]的值,所以index(3)=______;这一行就相当于问你a[3]=______;如果不返回引用index(i)就是一个常量值而不是变量,常量是不能在等号左边的
2.这一题你要清楚const类型的作用,标识符前加const说明它在初始化后不可改变,例如我定义:
const int a; //a被默认赋值0
a=5; 这是不允许的,要想给a赋值5 必须这样定义:const int a=5;接下来不能对a做任何改变
因为累sample的数据成员f和c是const类型 所以构造函数只能用初始化的方式而不能用下面这种:sample(float a,char b)
{f=a;c=b;}
sample(float a,char b):f(a),c(b){}这称为构造函数的初始化式,这是一种语法,记住就行了,在类中const类型的数据成员只有用这种方式初始化
3.这题没什么好说的,ta是MA类型的指针,因为ta前面有个*号,指针不是对象
1.引用是别名,返回值为a[i]的一个引用,故返回值类型为int &
index(3)其实就是a[3],这行就是给a[3]重新赋值
2.这是sample的一个构造函数,初始化数据成员f和c的,构造函数后面的冒号是参数化模板,即起到初始化的作用 f(a)即 f = a 的意思 后面一个应该是c(b)吧。
3.tb是对象名,ta是指向一个MA对象的对象指针。
回答完毕,打这么多字,给分吧。。