ошибка conflicting declaration при иницилизации обекта
struct Sizes {
const int LAYERS;
const int FIRST_LAYER;
const int SECOND_LAYER;
const int THIRD_LAYER;
};
class Test
{
private:
Sizes sizes;
public:
Test(Sizes sizes_f):sizes(sizes_f) {}
};
int main()
{
std::cout<<__cplusplus<<std::endl;
Sizes sizes {3,3,2,1};
//Parser().parse();
//Neural(sizes);
Test(sizes);
}
ошибка
conflicting declaration «Test sizes»
35 | Test(sizes);
| ^~~~~
src/Main.cpp:32:8: замечание: предыдущая декларация «Sizes sizes»
32 | Sizes sizes {3,3,2,1};
| ^~~~~
Как исправит? Заранее спасибо
Ответы (2 шт):
Автор решения: Harry
→ Ссылка
А что вы хотите получить? По сути, вы объявили переменную sizes типа Test, а так как перед этим уже была объявлена переменная sizes типа Sizes, то...
Может, вы хотели этого:
Test{sizes};
?
Автор решения: AR Hovsepyan
→ Ссылка
Конструкторы вызываются так:
Test t = Test(sizes);
Test t(sizes);
Test{sizes};
А Test(sizes); это или вызов функции Test или объявление Test sizes