[英]Pass reference instance to static method when copy-constructor and assignment-operator is disabled
我的 ClassA 看起來像這樣:
class ClassA
{
private:
static uint32_t IDCOUNTER;
uint32_t _id = -1;
public:
ClassA();
~ClassA();
ClassA(const ClassA&) = delete;
void operator=(const ClassA&) = delete;
};
我想創建一個特定的 ClassA 實例,我希望它被傳遞,但我不希望它以任何方式被復制。 因此,在我的主要 function 中,我實例化了 instanceA1。 接下來,(在我的主要功能中),我想將此實例存儲在全局某個地方,例如 static class:
int main()
{
ClassA instanceA1;
ClassStatic::SetClassA(&instanceA1);
}
// this class is declared in a separate file:
class ClassStatic
{
private:
static ClassA *referenceToA;
public:
static void SetClassA(ClassA* refToSingleAInstance)
{
referenceToA = refToSingleAInstance; // taken from cpp part of the class just for this question
}
};
編譯時,我收到 linker 錯誤。 這是為什么? 我是否把整個概念弄錯了(似乎很可能......)? 我將如何解決這個問題?
編譯時,我收到 linker 錯誤。 這是為什么?
因為您沒有定義ClassStatic::referenceToA
。
我將如何解決這個問題?
在(恰好一個)翻譯單元中定義ClassStatic::referenceToA
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.