gpt4 book ai didi

c++ - 随着类别的变化而改变输入的数量

转载 作者:行者123 更新时间:2023-11-28 05:00:45 25 4
gpt4 key购买 nike

using namespace std;

template <typename T>
void add(linked<T> &list1,ifstream& myFile){
string a;
while(!myFile.eof()){
myFile >> a;
T car1;
car1.setName(a);
T& car2 = car1;
list1.addtolist(car2);
}
}

int main(){
linked<car> list1;
ifstream myFile;
myFile.open("car.txt");
add(list1,myFile);
cout << (list1.getElem(1)).getName() << endl;
}

car 是一个有参数的类,现在我想传递一个有两个参数的类(比如总线)对象的列表,并想从文件中读取参数。我如何更改添加功能,以便它在汽车的情况下接受一个输入,在公共(public)汽车的情况下接受两个输入

附言linked 是链表类。

基本上,我想创建一个函数,如果类是汽车(即模板 T 是汽车),它接受一个输入;如果类是公共(public)汽车,它接受两个输入。

最佳答案

提供重载:

std::istream& operator >> (std::istream& is, Car& car)
{
std::string s;
is >> s;
car.setName(s);
return is;
}

std::istream& operator >> (std::istream& is, Bus& bus)
{
std::string s;
std::string s2;
is >> s >> s2;
bus.setName(s);
bus.setProperty(s2);
return is;
}

然后

template <typename T>
void add(linked<T>& myList, std::istream& myStream){
while (myStream) {
T t;
myStream >> t;
myList.addtolist(t);
}
}

关于c++ - 随着类别的变化而改变输入的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46095787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com