클래스 템플릿을 사용하여 LinkedLists를 구현하려고합니다. 프로그램이 입력 할 때 LinkedList 객체와 변수 x (삽입 또는 삭제할 요소)의 유형을 결정하도록합니다. 나는 다음과 같은 코드를 시도하지만 라인 1에 오류를 제공하고유형을 동적으로 알 수있는 템플릿 클래스 객체에서 auto 키워드를 사용할 수 있습니까? 그리고 이니셜 라이저없이 auto 키워드를 사용할 수 없습니까?
#include<iostream>
using namespace std;
template <class dt>
class LinkedList{
dt element;
LinkedList* next;
public:
LinkedList():next(NULL){}
// Basic Linked List Functions and their definitions
};
int main(){
int opt;
auto x; //.....1
LinkedList<auto> LL; //.....2
do{
cout<<"\nEnter the Option number to perform:1--> Push(x)\n2--> Push(x,n)3--> Pop()\n4--> Pop(n)\n5--> Pop(x)\n6--> Exit";
cin>>opt;
switch(opt){
case 1: cout<<"\nEnter x: ";
cin>>x;
LL.Push(x);
break;
case 2: cout<<"\nEnter x and n";
cin>>x>>n;
LL.Push(x,n);
break;
case 3: LL.Pop();
break;
case 4: cout<<"\nEnter n";
cin>>n;
LL.Pop(n);
break;
case 5: cout<<"\nEnter x";
cin>>x;
LL.Pop(x);
}
LL.Print();
}while(opt<5);
return 0;
}
'x'의 유형은 무엇입니까? '자동'이 적절한 유형이라고 생각할 수도 있지만, 그렇지 않습니다. 컴파일러가 적절한 유형을 추론 할 것을 단순히 요구합니다. –
그 중 아무 것도 작동하지 않습니다. 'C++ '은 컴파일 할 때 타입을 알아야한다. – Galik