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

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

所属分类:软件开发 来源: 丁老师原创 更新时间:2025-05-16 08:44 浏览: 1479 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();
}


标签:

相关文章

网易企业邮箱客户端SSL端口设置

最近经常配置OJS系统的(Open Journal Systems期刊管理系统 )发信功能,客户使用的是网易企业邮箱,根据网易企业邮箱帮助中心的文档显示,smtp服务加密ssl的端口是994,如图:结果设置了以后,怎么也发不了邮件,就在...

Dedecms cookies泄漏导致SQL...

dedecms cookies泄漏导致SQL漏洞

微信小程序从开发到实现微信支付的全过程

微信小程序部分一、完善小程序基本信息1.用管理员账号登录微信小程序(https://mp.weixin.qq.com/);2.左侧菜单选择首页;3.完善小程序的基本信息,包括小程序名称、小程序类目、微信认证、微信备案等。二、小程序开发配...

Css3中position:sticky无效...

有同学在前端写css代码时,遇到问题,使用的css3,写的是position:sticky,想要内容滚动到该区域,该区域自动置顶滑动。但一直无效,经过丁老师研究后发现,该区域没有定义高度,而使用position:sticky时,是必须要...

推荐文章

Javascript复制对象改变原值的解决办...

在进行vue开发中,经常会遇到复制对象,赋值新对象后,原对象值被改变的问题,举个例子:let old={ "a":1, "b":2 } let new=old; new['c']=3;...

FastAdmin后台列表默认分页数量由10...

没那么多废话,直接上修改方法public\assets\js\require-table.jspageSize: Config.pagesize || localStorage.getItem("pagesize") |...

百度编辑器ueditor自动添加p标签换行的...

在实际工作中发现,有个编辑器每次保存或者修改后,都会自动在内容顶部和底部增加几行,烦人的很,一直找不到解决办法。后来发现原来是自己代码的问题。解决办法:内容在textarea中,不要换行不要写成:<textarea{content} ...

CI框架页面添加全局变量的方法

CI框架是一款很小却又非常强大的PHP程序框架,非常适合用来搭建中小型网站以及扩展程序。有同学问到,在使用CI框架时,比如要对全站的标题、公司信息、电话等设置一个全局变量,不用每个页面都写死,该怎么办呢?丁老师来教你:1.打开页面的控制器文...