Я плюю через какой-то старый код на C++. В ней я объявить локальную переменную как это:Инициализация C++ как функция
Pen blackPen(Color(255, 0, 0, 0));
Это, кажется, вызвать конструктор.
Я пытаюсь сделать это глобальной переменной, которую хочу инициализировать в функции. Тем не менее, я не могу разделить переменную от ее инициализации таким образом. Конечно, я могу определить глобальную переменную,
Pen blackPen;
Но теперь я не знаю, как инициализировать его:
blackPen = Pen(Color(255, 0, 0, 0));
кажется наиболее разумным, но я получаю сообщение об ошибке:
"Gdiplus::Pen::Pen(const Gdiplus::Pen &)" (declared at line 452 of "c:\Program Files (x86)\Windows Kits\8.1\Include\um\gdipluspen.h") is inaccessible
Следующий фрагмент показывает такое поведение:
#include <windows.h>
#include <gdiplus.h>
using namespace Gdiplus;
Pen redPen;
int main(int argc, char *argv[])
{
Pen greenPen(Color(255, 0, 0, 0)); // this initialization works
redPen = Pen(Color(255, 0, 0, 0)); // but this doesn't...
return 0;
}
Кажется, что ваш конструктор копирования является закрытым. Можете ли вы опубликовать [MCVE] (http://stackoverflow.com/help/mcve)? – emlai
Похоже, вы не можете. Ошибка говорит о том, что конструктор копирования является закрытым. Он может быть подвижным, вы включили C++ 11? – NathanOliver
Предоставьте [MCVE], пожалуйста. –