C++ 類中的static對象貌似不能是類對象

來源:互聯網
上載者:User
#include<stdio.h>class CDemoCls{public:    int idata;public:    CDemoCls(){        idata=0;        printf("%s\n",__FUNCTION__);    }    ~CDemoCls(){        printf("%s\n",__FUNCTION__);    }};class CDemoCls2{public:    static class CDemoCls cls;    static int a;public:    CDemoCls2(){        printf("%s\n",__FUNCTION__);    }    ~CDemoCls2(){        printf("%s\n",__FUNCTION__);    }};int main(){CDemoCls2 obj;//obj.cls.idata=5;//有這句 報錯:/*testClsStatic.obj : error LNK2019: 無法解析的外部符號 "public: static class CDemoCls CDemoCls2::cls" (?cls@CDemoCls2@@2VCDemoCls@@A),該符號在函數 _main 中被引用testClsStatic.exe : fatal error LNK1120: 1 個無法解析的外部命令*/    return 0;}

定義2 個類,第二個類 想使用 一個 static的類1 對象,現在編譯 可運行顯示:

CDemoCls2::CDemoCls2CDemoCls2::~CDemoCls2

好像沒有CDemoCls的事情,在main函數加上對 static 類 的變數使用,直接報錯,無法解析的外部符號。

真是鬱悶。我只是希望 第二個類 不要重複 對第一個類 進行操作。把 第一個類 當作 全域變數 ,我總覺得 全域變數多了 不好管理。

唉 這麼 簡單的要求,沒想到 都無法做到。

而且 類中的 static 無法 直接初始化,這個 最煩人了。只希望 初始化一次的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.