헤더 파일에 정의 된 구조체를 함수 매개 변수로 사용할 때 '불완전한 유형은 허용되지 않습니다'

카 팔트

방금 Python에서 C ++로 전환했습니다. 이것은 내가했던 연습입니다 struct. 소스 파일에서 직접 구조체를 사용하지 않으면 항상 '불완전한 유형은 허용되지 않습니다'라는 오류가 발생합니다.

스택 오버플로에서 많은 답변을 검토 typedef하고 헤더 를 추가 하거나 구조체를 제거 하려고 시도 std::vector<double> timesteps(struct temporal_info time)했지만 아무것도 작동하지 않습니다.

여기 내 dmdbase.h가 있습니다.

#ifndef dmdbase
#define dmdbase

#include <iostream>
#include <vector>

class DMDBase

{
public:
    struct temporal_info
    {
        double t0;
        int trend;
        double dt;
    };
    std::vector<double> timesteps(struct temporal_info time);
};
#endif

여기 내 dmdbase.cpp가 있습니다.

using namespace std;


std::vector<double> timesteps(struct temporal_info time)
{
    std::vector<double> time_map;
    double final = time.trend + time.dt;
    for (double t = time.t0; t < final; t += time.dt)
    {
        time_map.push_back(t);
    }
    return time_map;
}
벤로 버스 999

함수 호출 사이트에는 유형의 일부가 아닌 struct 키워드가 필요하지 않습니다.

std::vector<double> timesteps(temporal_info time);

또한 : 문제는 DMDBase 클래스 내에서만 정의 된 구조체 'temporal_info'입니다. 그래서 당신은 이것을해야합니다

std::vector<double> DMDBase::timesteps(temporal_info time);

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관