C++ c++;键盘输入的通用数据

C++ c++;键盘输入的通用数据,c++,generics,linked-list,C++,Generics,Linked List,有没有一种方法可以在不进入方法调用的情况下从键盘获取通用数据T 类似于此: T data; std::cout << "Please enter the data that you would like to delete: "; std::cin >> data; list.deleteAll(data); T数据; std::cout>数据; 列表。删除所有(数据); 除非我使用deleteAll方法

有没有一种方法可以在不进入方法调用的情况下从键盘获取通用数据
T

类似于此:

        T data;
        std::cout << "Please enter the data that you would like to delete: ";
        std::cin >> data;
        list.deleteAll(data);
T数据;
std::cout>数据;
列表。删除所有(数据);
除非我使用deleteAll方法,否则我实际上无法将变量数据创建为t。我只是想知道是否有办法做到这一点

LinkedList列表

删除所有:

void deleteAll(T data) {
    int i = 0;
    Node *curr = this->head, *prev;
    while(i < this->size){
        if(data == this[i].data && i == 0){
            this->head = curr->next;
            std::cout << curr->data << endl;
            delete curr;
        }
        else if(data == this[i].data){
            prev = curr;
            prev->next = curr->next;
            std::cout << curr->data << endl;
            delete curr;
            i++;
        }
        else{
            i++;
        }
        this->size--;
    }
}; //delete all
void deleteAll(T数据){
int i=0;
节点*curr=this->head,*prev;
而(isize){
if(data==this[i]。data&&i==0){
此->头=当前->下一步;
std::cout data next=curr->next;
std::cout数据大小--;
}
};//删除所有

您可以使用模板功能执行此操作:

template <class T>
void promptAndDelete(LinkedList<T> list) {
    T data;
    std::cout << "Please enter the data that you would like to delete: ";
    std::cin >> data;
    list.deleteAll(data);
}
模板
作废promptAndDelete(链接列表){
T数据;
std::cout>数据;
列表。删除所有(数据);
}

除非我使用deleteAll方法,否则我实际上无法将变量数据创建为t
为什么不能?到底是什么阻止了你?如何声明
列表
deleteAll
呢?另外,如何声明包含此代码的函数?我正在尝试创建变量并将其发送到deleteAll,而不是doi如果
deleteAll()
是一个成员函数,则应使用
LinkedList::deleteAll(…)
@code peedient正在使用list.deleteAll()来定义它,是否认为错误?