Ant_Shen 2014-09-26 04:39 采纳率: 0%
浏览 2176

返回自定义对象时的异常

#include
#include
#include
using namespace std;
class listOperateion{
private:
string * a;
string * b;
string pattern;

public:
listOperateion(){}
void setList1(string * a){
this->a = a;
}
void setList2(string * b){
this->b = b;
}
string* getList1(){
return this->a;
}
string* getList2(){
return this->b;
}
static vector split(string str,string pattern)
{
string::size_type pos;
vector result;
str+=pattern;
int size=str.size();
for(int i=0; i {
pos=str.find(pattern,i);
if(pos {
string s=str.substr(i,pos-i);
result.push_back(s);
i=pos+pattern.size()-1;
}
}
return result;
}
static OutputData elementSplit( string str )
{
OutputData od;
vector result = split(str,",");
//cout<<"the result:"<<endl;
int vsize = result.size();
string str1 = new stringvsize;
for(int i=0; i<result.size(); i++)
{
str1[i] = result[i];
//cout<<str1[i]<<endl;
}
od.setA(str1);
od.setB(vsize);
return od;
}
string
dataInput()
{
string a;
char ch1[100];

scanf("%[^\n]", ch1);
a = ch1;

OutputData od ;
od = elementSplit(a);
string *str2 = od.getA();
int vsize = od.getB();
setList1(str2);

/*for (int i=0;i<vsize;i++)
{
    cout<<str2[i];
}*/
return str2;

}
};
class OutputData{
private:
string * a ;
int b;
public:
OutputData(){}
void setA(string * a){
this->a = a;
}
string* getA(){
return this->a;
}
void setB(int b){
this->b = b;
}
int getB(){
return this->b;
}
~OutputData(){}

};
void main(){
listOperateion lo;
lo.dataInput();
string * a = lo.getList1();
/*for (int i=0;ilength();i++)
{
cout< }*/
}
异常:
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(51): error C2146: 语法错误: 缺少“;”(在标识符“elementSplit”的前面)
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(51): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(51): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(52): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(66): warning C4183: “elementSplit”: 缺少返回类型;假定为返回“int”的成员函数
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(41): warning C4018: “<”: 有符号/无符号不匹配
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(53): error C2146: 语法错误: 缺少“;”(在标识符“od”的前面)
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(53): error C2065: “od”: 未声明的标识符
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(58): warning C4018: “<”: 有符号/无符号不匹配
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(63): error C2065: “od”: 未声明的标识符
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(63): error C2228: “.setA”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(64): error C2065: “od”: 未声明的标识符
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(64): error C2228: “.setB”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(65): error C2065: “od”: 未声明的标识符
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(76): error C2146: 语法错误: 缺少“;”(在标识符“od”的前面)
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(76): error C2065: “od”: 未声明的标识符
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(77): error C2065: “od”: 未声明的标识符
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(78): error C2065: “od”: 未声明的标识符
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(78): error C2228: “.getA”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(79): error C2065: “od”: 未声明的标识符
1>e:\vs2010\newproject\crapt01\crapt01\t01.cpp(79): error C2228: “.getB”的左边必须有类/结构/联合
1> 类型是“'unknown-type'”
c++新手**

  • 写回答

1条回答

  • PangSimon 2014-09-26 10:06
    关注

    大哥,你这个vector都不指定类型么?模板编程实例化时需要指定class类型。
    比如,vector iVec...
    还是我落伍了?

    评论

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择