所以我有两个班级-一个是针对特定玩家的,另一个是针对团队的玩家的。
Player(string line){
string write;
stringstream line1(line);
int i = 0;
while (getline(line1, write, ';')){
switch (i) {
case 0:
name = write;
i++;
break;
case 1:
surname = write;
i++;
break;
case 2:
skills[0] = write;
i++;
break;
case 3:
skills[1] = write;
i++;
break;
case 4:
skills[2] = write;
i++;
break;
case 5:
skills[3] = write;
i++;
break;
case 6:
skills[4] = write;
i++;
break;
case 7:
age = stoi(write);
i++;
break;
case 8:
height = stoi(write);
break;
default:
break;
}
}
}
Player类具有一个构造函数,该构造函数接受带有所有参数的字符串并将其全部设置。有效。
我想要完成的是能够将包含某些行(fstream类型)的文件传递给Team类的构造函数,并在文件中指定一组Players。这就是我要强调的:
Team(fstream file){
string one;
while (getline(file, one))
Player asdf = (one);
addPlayer(asdf);
}
使用未声明的标识符'asdf'就是我从中得到的全部。有人可以指导我采取正确的方法吗?
答案 0 :(得分:0)
要回答您的问题,是的,可以在CTOR中创建一个对象并将其保留。请注意,这样做会分配内存,这可能会导致构造函数失败。另外,您正在将局部变量传递给“ AddPlayer”方法,根据实现的方式,可能可能会成为问题。
没有看到更多代码,您发布的内容似乎有效。 这两段代码是否在同一个源文件中?也许您需要在文件顶部声明“ #include Player.h”来声明团队。
答案 1 :(得分:0)
编辑:回答实际问题;您可以在构造函数中创建另一个类的实例,然后根据需要使用它。附带说明,$fl = File-name to send to target Server
$usrn = User-name
$pswd = Password
$trgtsvr = Target-server Name/IP
$trgtdir = Target-folder path for Target-server Name/IP
$sntdir = 'Sent' folder on Source Server
$lgfl = Logfile name for std output & error to be dumped into
curl --cacert --ftp-ssl -k -T $fl -u $usrn:$pswd ftp://$trgtsvr:2121$trgtdir &>> $sntdir/$lgfl
通常是指在类中声明的变量和函数。
该行:
curl --tlsv1 -T $fl -u $usrn:$pswd ftp://$trgtsvr:2121$trgtdir &>> $sntdir/$lgfl
可以更改为:
member
另外请注意,将Player asdf = (one);
传递给Player asdf(one);
时,您正在复制它。那可能很合适。但是,如果更合适,您可以选择采用移动语义。