关于赋值!!!!
小弟刚学C++
请问
class pru
{
public:
pru();
void setpru();
prviate
const a[50][50];
};
const a[50][50];
怎么样在构造函数中赋值呀!!1
问题点数:10、回复次数:5Top
1 楼heguobaoceo(awen)回复于 2003-12-03 22:00:25 得分 2
class Array
{
public:
Array();
Array(int m);
~Array()
{ }
void setpru();
private:
const a[50][50];
int date;
};
Array::Array(int m):date(m)
{}
const a[50][50];Top
2 楼0738111080(爱)回复于 2003-12-03 22:06:46 得分 0
class pru
{
public:
pru();
void setpru();
prviate
const a[50][50];
};
我是说这个数组了const a[50][50];
怎么样在构造函数中赋值呀!!1
Top
3 楼woshizhichong(我是只虫)回复于 2003-12-05 20:12:26 得分 4
在一个类里建立一个c o n s t时,不能给它初值。这个初始化工作必须发生在构造函数
里,并且,要在构造函数的某个特别的地方。因为c o n s t必须在建立它的地方被初始化,所以
在构造函数的主体里, c o n s t必须已初始化了,否则,就只有等待,直到在构造函数主体以后
的某个地方给它初始化,这意味着过一会儿才给c o n s t初始化。当然,无法防止在在构造函数
主体的不同地方改变c o n s t的值。
1. 构造函数初始化表达式表
构造函数有个特殊的初始化方法,称为构造函数初始化表达式表,起初用在继承里(继承
是以后章节中有关面向对象的主题)。构造函数初始化表达式表—顾名思义,是出现在构造
函数的定义里的—是一个出现在函数参数表和冒号后,但在构造函数主体开头的花括号前的
“函数调用表”。这提醒人们,表里的初始化发生在构造函数的任何代码执行之前。这是把所有
的c o n s t初始化的地方,所以类里的c o n s t正确形式是:
class A{
const size;
public:
A();
}
A::A():size(100){}
所以你的想法恐怕无法实现了:(
Top
4 楼tomsx(...)回复于 2003-12-05 20:32:18 得分 4
楼上说的很全面,我也就说了,在进入构造里时CONST没有被初始化是一种错误,所以就发明了什么构造函数初始化表达式表什么的,反正就是这个意思,一般在类里的初始化工作都在这里进行,很少在构造里进行.Top
5 楼xunfengxxx(寻风)回复于 2003-12-05 20:47:54 得分 0
UPTop




