永发信息网

c++错误 is not a member of vector

答案:4  悬赏:20  手机版
解决时间 2021-03-12 09:26
  • 提问者网友:疯孩纸
  • 2021-03-11 18:08
帮忙看一下代码吧 有一个错误 编译不通过
//test.h
#include
using std::vector;

#define DEFAULT_CAPACITY 3
template class Vector
{
public:
Vector( int c = DEFAULT_CAPACITY, int s = 0, T v = 0)
{
_elem = new [_capacity = c];
for(_size = 0; _size < s; _elem[_size++] = v);

}

~Vector()
{
delete[] _elem;
}

int disordered() const;
};

//test.cpp
#include
#include
using namespace std;
using std::vector;

#include "test.h"

template int Vector::disordered() const
{
int n = 0;
for(int i = 1; i < _size; i++)
{
if(_elem[i-1] > _elem[i])
n++;
}
return n;

}

//2.17.cpp(main函数测试)

#include
#include
using namespace std;
using std::vector;

#include "test.h"

int main()
{
vector a(10,3);

cout<
return 0;

}

最后报错:
C:\Users\Administrator\Desktop\2.17.cpp(15) : error C2039: 'disordered' : is not a member of 'vector >'
最佳答案
  • 五星知识达人网友:上分大魔王
  • 2021-03-11 19:44
模板类不能分成.h和.cpp来写,必须写在一个文件中
全部回答
  • 1楼网友:想偏头吻你
  • 2021-03-11 21:52
你定义一个Vector类,disordered也是这个类的成员函数,你在main函数里使用是vector,disordered不是vector的成员函数,所以报错
  • 2楼网友:愁杀梦里人
  • 2021-03-11 20:59
就是用简单的循环就可以了 int ilength = a.length(); for(int i = 0; i < ilength; i+3) { string strtmp = a.substr(i, 3); b.push_back(strtmp); }
  • 3楼网友:酒者煙囻
  • 2021-03-11 20:35
你这个真是乱。 你的main.cpp为何使用了using std::vector?首先你的整个.h和.cpp的代码就是为了实现一个自定义的Vector类(注意V是大写),而main.cpp却在使用vector(注意v是小写),那么你的test.h还有什么意义呢? 我猜测你应该是想实现一个自定义的Vector类,那就使用它就OK了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯