以下是我写的一段源码,主要问题是类strss中的动态创建与继承之间关系的问题,简单来说strs就是一个简单地字符串类,我想用strss继承strs,并动态的创建一个strs类的数组,整个代码的功能:输入整数,再输入相应个数个字符串,判断其是否符合,所有字符串判断完后一次性输出YES或者NO。
代码报错arr不存在。
另外可能有的小伙伴可能知道这个题,会说我题目没读对,我发现了,但是题的问题不难,主要是这个
另外
感谢各位的观看!
c++路上加油!
#include<iostream>
#include<string>
using namespace std;
class strs //字符串类
{
public:
string str;
int np,nt; //分别记录PAT的数量,正常来说,PT只含有一个且有序,A无限制
bool flag;
strs() //构造函数
{
cin>>str;
flag=true;
np=0;
nt=0;
for(int i=0;i<str.size();i++)
{
if(str[i]=='P') np++;
else if(str[i]=='T') nt++;
else if(str[i]=='A') continue;
else flag=false;
}
cout<<"strs构造函数"<<endl;
}
void judgeit() //判断函数 :判断strs对象的str字符串是否满足条件
{
int nup=0,nut=0;
if(np==1&&nt==1&&flag) //P和T智能存在一个 ,flag为true时字符串不含有PAT以外的字符
{
for(int i=0;i<str.size();i++)
{
if(str[i]=='P') nup=i;
else if(str[i]=='T') nut=i;
else continue;
}
if(nup+1<nut) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
else
cout<<"NO"<<endl;
}
};
class strss :public strs //目的:构建一个strs类的对象的数组,然后通过 创建strss类的对象完成所有创建
{
public:
int nums;
strss()
{
cin>>nums;
strs *arr=new strs[nums];
cout<<"strss构造"<<endl;
}
};
int main()
{
strss a1;
for(int j=0;j<a1.nums;j++)
{
a1.arr[j].judgeit();
}
return 0;
}