Два почти одинаковых файла, один выдает две ошибки, а другой нет [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Два почти одинаковых файла, один выдает две ошибки, а другой нет [дубликат]

Сообщение Anonymous »


У меня есть 2 файла заголовков:
[*]color.h [*]rgb.h
В файле color.h у меня есть:

#pragma Once класс RGB; класс ХСЛ; класс Цвет { публика: /** Альфа-значение цвета. */ интервал а; статический RGB rgb(int r, int g, int b, int a = 255); статический HSL hsl(int h, int s, int l, int a = 255); }; Тогда в моем файле rgb.h у меня есть:

#pragma Once #include "color.h" класс Цвет; класс RGB: публичный цвет { публика: интервал р; интервал г; интервал б; RGB(int r, int g, int b, int a = 255); }; Но по какой-то причине возникают следующие две ошибки, и я не знаю почему.
[*]объявление ничего не декларирует [*]макросу "RGB" передано 4 аргумента, но требуется только 3.
У меня также есть еще один файл под названием hsl.h. Он по сути такой же, как файл rgb.h, только в нем нет этих ошибок:

#pragma Once #include "color.h" класс Цвет; класс HSL: public Color { публика: интервал ч; интервал с; интервал л; HSL(int h, int s, int l, int a = 255); }; Что является причиной этого?

Судя по второй ошибке, мне кажется, что он пытается переопределить существующий класс/конструктор. Я использую #include в своем файле main.cpp. Может ли это быть объявлением RGB, который я случайно пытаюсь переопределить?

Вот полное сообщение об ошибке:
C:\Users\untun\Documents\vscode\draw\draw\core\color/rgb.h:13:39: ошибка: макрос «RGB» передал 4 аргумента, но принимает только 3 13 | RGB(int r, int g, int b, int a = 255); | ^ В файле, включенном из C:/msys64/ucrt64/include/windows.h:71, из C:/msys64/ucrt64/include/rpc.h:16, из C:/msys64/ucrt64/include/objbase.h:7, из C:/msys64/ucrt64/include/shlwapi.h:14, из C:/msys64/ucrt64/include/jmorecfg.h:19, из C:/msys64/ucrt64/include/jpeglib.h:31, из C:\Users\untun\Documents\vscode\draw\draw\core\main.cpp:1: C:/msys64/ucrt64/include/wingdi.h:1397: примечание: здесь определен макрос «RGB». 1397 | #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))
Ответить

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

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

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

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

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