Chinaunix首页 | 论坛 | 博客
  • 博客访问: 712509
  • 博文数量: 98
  • 博客积分: 3257
  • 博客等级: 中校
  • 技术积分: 966
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-15 17:19
文章存档

2020年(1)

2018年(1)

2017年(1)

2016年(2)

2015年(2)

2013年(3)

2012年(24)

2011年(28)

2010年(4)

2009年(9)

2008年(23)

我的朋友

分类: C/C++

2012-02-11 20:06:53

在写《数据结构--c++与面向对象的途径》第四章101页matrix实现代码的时候,出现众多问题,matrix类申明如下:
template class matrix {
    public:
        matrix(unsigned numofRows,unsigned numofCols);
        matrix(unsigned numofRows,unsigned numofCols,T initValues);
        ~matrix();
        vector& operator[](unsigned index) const;
        int numberRows() const;
        int numberColumns() const;
    private:
        vector *> rows;
};
而vector类的构造函数只有三个:
vector(unsigned numElements);
vector(unsigned numElements,T initValue);
vector(const vector &source);
这就导致一个找不到vector()构造函数的错误,因为用vector vt;构造一个vector实例时,需要调用没用参数的构造函数,但前面没有定义。
也就是说,矩阵matrix中,列数已在构造函数的实现中生成,但行数,也就是rows这个矩阵的长度却没有给出,因此需要对书上 的代码做修改补充。
最后,如题,由于粗心的将第一个构造函数写成matric,结果出现:
ISO C++ forbids declaration of ‘matric’ with no type错误,找了半天,罪过!
真实要注意构造函数如果没有和类名相同,包括大小写也要相同,不然报这个错。或者是普通函数没有加返回类型,同样处理。
以此作为备忘笔记。加油!!

阅读(38171) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~