我正在吐一些舊的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]。 –