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

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

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


标签:

相关文章

EditPlus正则匹配备份

匹配a链接正则:<a href="[^"]+"匹配数字替换,如替换sql语句的(2,'a','b')为(2,2,'a','b')查找项:...

IDEA IDE换行自动显示的}括号如何去掉

在使用idea旗下的产品,如intellij idea,php storm,web storm时,有的时候编辑前端页面JS,在换行时经常会自动出现个}大括号,这一点程序不是很智能,其实后边都已经有括号了。比如下图这样:那么如何解决这个问...

Fastadmin系统配置城市地区保存城市名...

在Fastadmin管理程序的系统配置中,可以添加城市地区的字段,用以三级省市区的选择,但是有的同学发现,在添加城市地区字段以后,保存的是城市名称的字符串,并不是城市ID,这样的话接下来业务涉及城市的扩展和匹配非常的不方便(用中文城市名...

使用ACME申请SSL证书提示Error c...

在使用ACME申请SSL证书时,输入了命令:acme.sh --issue -d www.xxx.com --dns dns_dp --server xxx来生成证书,但是结果却返回:Error creating new order. ...

推荐文章

微信小程序和APP有什么区别?到底该做哪个?

经常有新客户咨询丁老师,微信小程序和APP有什么区别呢?一般情况下来说应该做哪个?今天丁老师就这个问题做一下介绍。微信小程序和APP的区别微信小程序微信小程序微信平台运行,无需下载安装,用户通过微信搜索、扫码或者朋友分享就能直接使用,用完即...

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

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

宝塔"在未指定SSL默认站点时,未开启SSL...

宝塔系统相关问题解决方法

性价比最高的内网穿透方案

内网穿透,是指外网可以访问内网,没有固定IP的服务器,所以需要中间件来进行通讯,目前稳定成熟的中间件软件,要么价格太贵,要么就是只能使用标准服务,不能完全的定制化。那么,到底有没有一个性价比最优的方案呢?回答是肯定的,答案就是使用云服务器+...