Qt 编译错误:C2228: “.key”的左边必须有类/结构/联合
目录
一、产生原因
二、解决方案
方案1:静态函数访问静态变量
方案2:静态函数内定义对象,再访问变量
一、产生原因
原因:静态函数访问了非静态变量, static函数与非static变量混用,示例代码如下
class FLOWEDITORSHARED_EXPORT NETranslator
{
public:NETranslator();static QString ch2En(const QString &ch);static QString en2Ch(const QString &en);private:QHash<QString, QString> m_hash;
};
//
NETranslator::NETranslator()
{m_hash.insert("image", QStringLiteral("图像数据"));m_hash.insert("region", QStringLiteral("区域数据"));m_hash.insert("contours", QStringLiteral("轮廓数据"));
}QString NETranslator::ch2En(const QString &ch)
{QString en = m_hash.key(ch, ch);return en;
}QString NETranslator::en2Ch(const QString &en)
{QString ch = m_hash.value(en, en);return ch;
}
上述代码编译将会出现以下错误:
NETranslator.cpp:12: error: C2228: “.key”的左边必须有类/结构/联合
NETranslator.cpp:18: error: C2228: “.value”的左边必须有类/结构/联合
二、解决方案
方案1:静态函数访问静态变量
那么把类变量也声明为static是否有用了,修改代码如下:
class FLOWEDITORSHARED_EXPORT NETranslator
{
public:NETranslator();static QString ch2En(const QString &ch);static QString en2Ch(const QString &en);private:static QHash<QString, QString> m_hash; //修改了此处,静态声明
};
再次编译出现了以下错误
NETranslator.obj
Qt 编译错误:C2228: “.key”的左边必须有类/结构/联合相关推荐
- Qt错误 error: C2228: “.exec”的左边必须有类/结构/联合 的解决方法
开发环境:Qt 5.6.1 (MSVC 2013, 32 bit) 我写了如下代码: GetUserFaceDialog dialog(); dialog.exec(); GetUserFaceDia ...
- C2228 “.xxx”的左边必须有类/结构/联合 c++
c++编译报错: C2228 "aaa.xxx"的左边必须有类/结构/联合 我发现的原因:指针函数用错 aaa是个指针,正确的用法: aaa->xxx 网友1的原因:初 ...
- 安装qtceator后无法启动help插件 Qt编译错误:cannot find -lGL 解决办法
1. Qt编译错误:cannot find -lGL 在编译之前常见的一个小工程(在mac下创建的)的时候,出现lGL错误,我以为是不兼容,但又新建了一个项目,编译出错: cannot find -l ...
- Qt编译错误“GL/gl.h:No such file or directory”的解决方法
Qt编译错误"GL/gl.h:No such file or directory"的解决方法 参考文章: (1)Qt编译错误"GL/gl.h:No such file o ...
- 关于QT编译错误问题
这里的意思是出现QT编译错误: 1.之前编译没问题,突然就报错了,而且错误根本不知道啥玩意. 2.编译出现不能自动更新,比如更改ui但是编译之后没该改变. ... 解决方法: 1.删除Makefile ...
- QT编译错误:cannot find file: *.pro
编译一个之前同事写的QT程序,结果出现了编译错误:cannot find file: *.pro 解决方法:将程序放在英文路径下 尽管出现一些红色的编译信息部门,但是最终还算是编译成功了~ 转载于:h ...
- Qt 编译错误 cannot find -lGL 解决方法
在 Linux 下编译 Qt 代码的时候出现 cannot find -lGL 的错误,如下所示: 图1 编译错误信息 解决方法 在终端中执行如下命令: sudo apt-get install li ...
- 两个常见Qt编译错误的解决
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 作者:朱 ...
- QT编译错误:invalid application of 'sizeof' to incomplete type 'Qt3DRender::QPickEvent'
执行3D常将中实体的pick操作,结果出现了编译错误:invalid application of 'sizeof' to incomplete type 'Qt3DRender::QPickEven ...
最新文章
- jQuery获取带点的id元素
- SAP推出下一代数字转型平台SAP HANA 2
- 专家解读:阅读AI论文对找工作有帮助吗?
- ubuntu之apache正向代理及反向代理(ProxyPass\ProxyPassReverse)
- oracle时间戳效率问题,时间戳问题 - Oracle开发 - ITPUB论坛-中国专业的IT技术社区...
- pycharm 快捷键2
- ImageFieldFile:XXXX is not JSON serializable
- 利用FreeType和OpenGL进行矢量字体渲染
- 不兼容惹的祸,Calibre 作者拒绝迁移至 Python 3
- python中元组和列表的区别_Python 序列:列表、元组
- Python3之正则表达式详解!
- 企业微信登录本地调试
- MATLAB绘制平方函数,MATLAB绘制由函数x^2/4+y^2/9+z^2/16=1形成的立体图,
- 【历史上的今天】1 月 22 日:苹果广告震动硅谷;计算机科学公司创始人出生;科学计量学先驱诞生
- 如何搭建 MTK 6577模拟器
- DBeaver 连接 人大金仓以及其他国产数据库
- 解决 Flutter 在 iOS 模拟器中运行卡住问题
- 医疗his系统用什么服务器,his软件用什么服务器
- spring 多个数据库_在Spring使用多个数据库
- eagle PCB软件使用心得
热门文章
- 持续领先,九州云位列中国边缘云解决方案市场TOP2
- ps2摇杆android图形编程,ROC-RK3308-CC开发实例总结--PS2 Joystick摇杆模块
- excel函数:汉字转全拼_30天中30个Excel函数:01 –精确
- [持续更新] 神经机器翻译论文汇总 Papers on Neural Machine Translation
- 腾讯搞了一个大新闻,躺枪的竟是百度……辣眼睛
- 【单片机】汇编指令英文全称
- 遵从自己的内心就永远不会迷失前进的方向
- 数据标准化的常见方法(Min-Max标准化、Z-Score标准化等)
- 基于华为云obs的springMVC文件上传下载,简单demo
- lombok 1.18.10