'::'이 뒤에 오는 이름은 '::'가 클래스 이름 뒤에 있더라도 클래스 또는 네임 스페이스 오류 여야합니다.

FatherOfGold

C ++에서 우선 순위 큐 구현을 만들려고합니다. 일반 유형을 정의하는 템플릿과 함께 클래스 정의가 포함 된 'priority_queue.h'라는 헤더 파일을 만들었습니다. 또한 'priority_queue.h'를 포함하는 'priority_queue.cpp'라는 파일의 클래스 정의에 정의 된 메서드를 구현하는 파일이 있습니다. 내 텍스트 편집기와 컴파일러 모두 서로 다른 것처럼 보이지만 오류가 발생합니다.

StackOverflow 및 기타 사이트에서 다른 질문을 찾아 봤고, 온라인 답변에서 올 바르고 작동하지 않는 코드를 복사하여 붙여 넣었습니다.

다음은 내 'priority_queue.h'헤더 파일의 코드입니다.

#include <iostream>
#include <vector>
#include <iterator>

using namespace std;

template <typename T>

class pqueue{
    public:
        pqueue();
        void insert(T element, int priority);

    private:
        vector<T> elements(); //This vector will store our data in the correct order

};

다음은 'priority_queue.cpp'파일의 코드입니다.

#include <iostream>
#include <iterator>
#include <vector>
#include "priority_queue.h"

using namespace std;

template <typename T>

void pqueue::insert(T element, int priority){

}

컴파일러에서 오류가 발생하고 'template<class T> class pqueue' used without template parameters.

내 텍스트 편집기에서 다음과 같은 오류가 발생합니다. name followed by '::' must be a class or namespace name

저는 Windows 10 Home 버전 1903을 실행하는 i7 8550U, 16GB RAM 및 256GB SSD가 장착 된 Dell XPS 13 9370을 사용 중이며 텍스트 편집기는 Microsoft Visual Studio Code Insiders입니다.

Vlad / 모스크바

헤더에서 클래스 템플릿의 멤버 함수를 정의해야합니다. 쓰기

template <typename T>
void pqueue<T>::insert(T element, int priority){

}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관