방금 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;
}
함수 호출 사이트에는 유형의 일부가 아닌 struct 키워드가 필요하지 않습니다.
std::vector<double> timesteps(temporal_info time);
또한 : 문제는 DMDBase 클래스 내에서만 정의 된 구조체 'temporal_info'입니다. 그래서 당신은 이것을해야합니다
std::vector<double> DMDBase::timesteps(temporal_info time);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다