首页 > 原创文章 > 软件开发 > 查看文章

C++为什么不能在未命名的结构上调用成员函数?

所属分类:软件开发 来源: 丁老师原创 更新时间:2025-05-16 08:44 浏览: 853 IP属地: 深圳
点击阅读全文
int main() {
    auto hello= struct {
        int test() {
            return 1;
        }
    }().test();
}

有初学C++的小伙伴提问,在运行C++代码时报错,错误提示如下:

<source>:2:18: error: expected expression
    2 |     auto hello= struct {
      |                  ^
1 error generated.

这是什么问题呢?经过分析得知,错误原因是C++初始化错误,初始化必须是一个表达式,而不是另一个声明符。正确的方法是,你可以在lanmbda中定义一个命名结构,然后创建和返回初始化,代码如下:

int main() {
    auto hello= [](){
        struct dummy {
            int test() {
                return 1;
            }
        };
        return dummy{};
    }().test();
}


相关文章

hash_hmac(): Unknown h...

最近在使用Fastadmin时,突然遇到一个奇怪的问题,程序抛出“hash_hmac():Unknownhashingalgorithm”异常。之前都好好的,怎么突然就遇到这么个问题呢?查看了下Driver.php这个源码,发现在使用h...

百度Ueditor附件上传去除前边的图标

百度ueditor在使用附件上传时,会自动在附件链接前边添加一个图标,这个图标不仅不美观,而且会暴露出ueditor的真实地址,给不法分子可乘之机,所以研究了下直接去掉。解决方法:ueditor.all.js里搜索dialogs/att...

fastadmin非菜单链接,跳转菜单页面的...

在fastadmin中,一个页面的非菜单链接,想要点击后打开指定页面,并且菜单自动展开,该怎么实现呢?经过丁老师研究后,发现超级简单,废话不多说,直接上代码:<a class="btn-addtabs" hre...

微信小程序开发用Vue2和Vue3好?有什么...

有新入行同学向丁老师咨询,在使用Uniapp做微信小程序时,是选择Vue2还是Vue3呢?哪个开发微信小程序更好一点,两者有什么区别呢?今天丁老师给大家介绍一下。首先,我们来介绍一下Vue2和Vue3。Vue2和Vue3是Vue.js框...

推荐文章

APP/小程序/网站/对接微信支付常见问题解...

现在微信支付已经超越支付宝,成为中国最广泛的在线支付方式。作为互联网电子商务服务商,如何开通对接微信支付?如何使用微信支付呢?丁老师整理一篇微信支付常见的问题解答。一、如何开通微信支付?微信支付可以在微信支付官网(https://pay.w...

bt宝塔升级方法

由老版本7.2自动升级时,会出现很多问题,建议在终端手动升级。升级命令:curl http://download.bt.cn/install/update_panel.sh|bash

uniapp开发小程序和app时,根据登录状...

在使用uniapp开发app和小程序时,经常会用到打开app/小程序时,根据登录状态判断是显示首页还是跳转登录页的功能。此功能在app.vue的onlaunch方法中定义,方法如下:onLaunch: function() {const _...

fastadmin btn-dialog按钮...

fastadmin里自定义按钮的btn-dialog,弹出窗口时默认大小,设置了data-area无效,经过研究后,发现了可用的方法,直接上代码不废话:table.on('post-body.bs.table',functi...