• C++ 类中的static对象貌似不能是类对象


    #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::CDemoCls2
    CDemoCls2::~CDemoCls2

    好像没有CDemoCls的事情,在main函数加上对 static 类 的变量使用,直接报错,无法解析的外部符号。

    真是郁闷。我只是希望 第二个类 不要重复 对第一个类 进行操作。把 第一个类 当作 全局变量 ,我总觉得 全局变量多了 不好管理。

    唉 这么 简单的要求,没想到 都无法做到。

    而且 类中的 static 无法 直接初始化,这个 最烦人了。只希望 初始化一次的。

  • 相关阅读:
    编程思想
    为什么静态成员、静态方法中不能用this和super关键字
    C#中静态与非静态方法比较
    数组,集合,列表的使用与区别
    2017-3-23 网络IP
    [精彩] 关于DB2的内存分配
    DB2 常用命令
    SQL0973N在 "<堆名>" 堆中没有足够的存储器可用来处理语句
    DB2通用数据库性能调整的常用方法
    创建DB2数据库联合对象
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2662206.html
Copyright © 2020-2023  润新知