Я изучал C ++ некоторое время (не так долго), и теперь я столкнулся с проблемой:
#ifndef _FILE_A_H
#define _FILE_A_H
template <typename T>
class A {
void func();
/// ... some code here
};
#include "a.cpp"
#endif
Я хочу разместить реализацию A-класса в файле 'a.cpp'
. Но для этого мне нужно включить 'a.h'
. Это нормально для перекрестного включения файлов в этой ситуации?
У меня есть что-то подобное в 'a.cpp'
(это компилируется, но выглядит неловко):
#ifndef _FILE_A_CPP
#define _FILE_A_CPP
#include "a.h"
template <typename T>
void A<T>::func() {
/// ... some code here
}
/// ... and some code here
#endif