Член "..."-это не тип, конструктор-определение (в .cpp) не принимает struct в качестве входной переменнойC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Член "..."-это не тип, конструктор-определение (в .cpp) не принимает struct в качестве входной переменной

Сообщение Anonymous »

Я пытаюсь написать какой-то код UI (для целей обучения), и я получаю эту ошибку, которую я не могу найти.

Код: Выделить всё

`E0493` No instance of overloaded function "UIElement::UIElement" matches the given argument type
`E0757` "Member "UIElement::UIState" " is not a typename
`C2061` Syntaxerror: Type "UIState"
`C2511` UIElement::UIElement(uint16_t): Overloaded memberfunction not found in "UIElement"
По сути, у меня есть этот класс uilement.h , и я хочу создать конструктор для него.

Код: Выделить всё

#pragma once

class UIElement
{
public:
struct UIState {
bool enabled = false;
bool visible = false;
};

UIElement(
UIState UIState_in
/*other inputs*/);
// ...
UIState UIState; // This line is related. If renamed to UIstate, the constructor error goes away
// ...
};
in uilement.cpp У меня есть этот код:

Код: Выделить всё

#include "UIElement.h"

#include 

UIElement::UIElement(UIElement::UIState UIState_in /*other inputs*/)
{

}
...
< /code>
Ошибка возникает внутри файла .cpp внутри определения конструктора.
Я не знаю, что я делаю неправильно. У меня никогда не было такой проблемы. (Также подозрительно заключается в том, что я получаю синтаксисерр C2061 
для uistate )
Я ожидал, что конструктор возьмет uistate uistate_in в качестве типа для in_variable. Ошибки, которые либо in_variable, либо сам конструктор.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... t-take-str
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»