首页 > 编程语言 >关于c++的一个报错

关于c++的一个报错

时间:2024-12-08 12:55:56浏览次数:3  
标签:std Name ctrl c++ 报错 关于 strcmp string ta

使用tstring构造函数,用到了VarBaseString的tostring,调用完,会导致局部对象指针为nullptr,目前在查原因

    class VarBaseString : public Var
    {
    public:
        VarBaseString(std::string str = "")
        {
            val = str;
            type = "string";
        }
        VarBaseString(const char* str)
        {
            val = str;
            type = "string";
        }
        ~VarBaseString()
        {
          
        }
        static std::string GetType()
        {
            return "string";
        }
        virtual std::string ToString() {
            return std::move(val);
        }
        VarBaseString operator =(const char* src)
        {
            val = src;
            return *this;
        }
        VarBaseString operator =(std::string src)
        {
            val = src;
            return *this;
        }
        std::string val;
    };

  接下来是:

    Control* ctrl = CreateControl(ele->Value());
    /*if (strcmp(ele->Value(), "Widget") == 0)
    {
        Widget* wi = (Widget*)ctrl;
        wi->ParseXmlElement(ele);
    }*/
    ctrl->ParseXmlElement(ele);
   
    TiXmlAttribute* ta = ele->FirstAttribute();
    while (ta)
    {
        ctrl->SetAttribute(ta->Name(), ta->Value());
        /*    if (strcmp(ta->Name(), "pos") == 0)
            {
                int x, y;
                sscanf_s(ta->Value(), "%d,%d", &x, &y);
                ctrl->pos.x = x;
                ctrl->pos.y = y;
            }
            else if (strcmp(ta->Name(), "size") == 0)
            {
                int w, h;
                sscanf_s(ta->Value(), "%d,%d", &w, &h);
                ctrl->size.x = w;
                ctrl->size.y = h;
            }
            else if (strcmp(ta->Name(), "name") == 0)
            {
                sCtrlName = ta->Value();
            }*/
        /*else if (strcmp(ta->Name(), "bkcolor") == 0 || strcmp(ta->Name(), "bkclr") == 0)
            {
                sCtrlName = ta->Value();
                int w, h;
                ctrl->size.x = w;
                ctrl->size.y = h;
            }
            else if (strcmp(ta->Name(), "hovercolor") == 0 || strcmp(ta->Name(), "hoverclr") == 0)
            {
                UITheme::
            }*/

        ta = ta->Next();
    }
    TString sCtrlName(ctrl->name.val);
    if (ctrl)
    {
       childs.push_back(std::make_pair(TString(ctrl->name), ctrl));
        //childs.push_back(std::make_pair("sCtrlName", ctrl));
    }
    ele = ele->NextSiblingElement();
}

 

标签:std,Name,ctrl,c++,报错,关于,strcmp,string,ta
From: https://www.cnblogs.com/yang131/p/18593276

相关文章

  • 斐波那契数列c++
    意大利数学家斐波那契(LeonardoFibonacci)是12、13世纪欧洲数学界的代表人物。他提出的“兔子问题”引起了后人的极大兴趣。“兔子问题”假定一对大兔子每一个月可以生一对小兔子,而小兔子出生后两个月就有繁殖能力,问从一对小兔子开始,n个月后能繁殖成多少对兔子?输入格式:首先......
  • c++实验五
    实验任务3:#pragmaonce#include<string>usingnamespacestd;classMachinePets{public:MachinePets(conststd::strings);virtualstringtalk()const=0;stringnickname;stringget_nickname()const{returnnickname;}};MachinePets::......
  • 关于网站icon小图标在网站上不显示的问题解决办法,确保图标正常显示
    解决网站icon小图标不显示的步骤检查文件路径:确保favicon.ico文件的路径正确。如果手动指定了图标路径,检查 <link> 标签中的 href 属性是否正确指向图标文件。检查文件格式:确保favicon.ico文件的格式正确。ICO文件是最常用的格式,但也可以使用PNG、JPEG等其他格式。如果使用......
  • C++ 数组内存申请和释放、引用
    在C++中如何实现对数组内存的申请和释放呢?同样使用关键字new、delete,可见以下代码例子:#include<iostream>usingnamespacestd;int*getGapList(int*arr,intsize){   int*p=newint[size-1];//这里需要申请一个数组对应的内存,就可以返回去   for(inti......
  • c++初识------for的循环变量的使用
    上次,我们讲了for循环,今天我们讲循环变量。废话不多说,直接进入正题。for循环语句的循环变量不仅仅可以用来控制循环运行的次数,还可以参与各种运算。举几个例子:观察数列:2 4 6 8 10...,输出数列的前n项。思路:第1步:因为要输出前n项,所以考虑用for循环。第2步:显......
  • Android14 关于读写权限 (Vivo)
    按常理来讲,在相机业务,或从相册读取图片时,应该要申请读写权限,在使用Delphi12+Android14环境下,发现在申请读写权限时,申请权限内容中,这二项不需要授权?不清楚是自己处理的问题,还是规则有所变更>>申请权限>>相机申请三项权限,无论怎么操作,都只有相机权限一项返回(关于读写......
  • 的士费用——c++加强选择结构
    呃上一章讲的是经典选择结构,这一章我们讲“加强版”的选择结构。所谓的“加强”,是在计算费用的基础上加上多余的钱数。我们来看道题:题目描述某市的士费起步价 8 元,可以行驶 3 公里。3 公里以后,按每公里 1.6 元计算,输入的士的公里数,请你计算顾客需付费多少元?输入格......
  • 四个人排序——c++选择结构提高
    这一章,我们要结束选择结构。判断四个数的大小并输出。我先来教大家一个判断两数大小的“捷径”: max(a,b); 这是两个数的大小,四个数的大小判断只能用if嵌套:if(……){if(……){……}}if嵌套,是在第一个if成立后执行下一个if。那么四个数比比大......
  • 集成minio启动报错:Caused by:java.lang.IllegalArgumentException:invalid hostname 1
    ......
  • flutter中调用C++的库
    Dart调用C++的库安装ffi库flutterpubaddffi如果是C++必须使用C的方式导出接口import'dart:ffi';import'dart:io';import"package:ffi/ffi.dart";finalDynamicLibraryff=Platform.isWindows?DynamicLibrary.open("live666.dll")......