invalid+use+of+non-static+member+function+问题

个人c++ 错误记录 1.类定义输入运算符 >> 时候,代码最后应该检测 输入流是否为有效,如果无效,应该把输入对象置于默认初始化状态。 定义>>时候,类必须是非常量引用。定义<<,最好是常量引用。 定义的时候不能加friend. 2. ... 阅读详情
#include <iostream>


using namespace std;
class A
{
public :
    A (int i)
    {
        a = i;


    }
    int fun(int b)
    {
        return a*c+b;
    }
    int c;
private :
    int a;
};


int main()
{
    A x(18);
    int A::*pc;
    pc = &A::c;
    x.*pc = 5;
    int (A::*pfun)(int);
    pfun = A::fun;
    A *p = &x;
    cout << (p->*pfun)(10)<<endl;


    return 0;

}


会出现错误:error: invalid use of non-static member function 'int A::fun(int)'|


int (A::*pfun)(int)=A::fun;
改成
int (A::*pfun)(int)=&A::fun;

 

在C++语言中,对于一个由类名加俩冒号再加成员名构成的东西(学名叫“quilified-id”),比如:A::x,只有当x是A类的静态成员的时候,A::x才能表示一个左值。

而对于函数类型到函数指针类型的默认转换,只有当函数类型是左值的时候才行。所有对于非静态的成员函数,就不存在这种从函数类型到函数指针类型的默认转换,于是编译器也就不知道这个
p = A::f
该怎么搞了。

 

(1)要说函数地址确定不确定,由于非静态成员函数指针可以有多态行为,因此,至少在编译期,其地址还真的无法确定。
(2)虽然所有的编译器都肯定会把类的非静态成员函数的代码只生成一份(不管是编译时还是运行时),这一点跟非静态成员变量不一样,变量每个对象都有独立的一份。——但我认为,这依然是编译器的实现细节而已,而不是语言特性。从抽象的语言特性角度讲,非静态的成员函数跟非静态的成员变量一样,在没有对象实例的时候,是形不成左值的。

http://topic.youkuaiyun.com/t/20060906/11/5002223.html 
大语言模型应用指南:幻觉和偏见问题 大语言模型应用指南:幻觉和偏见问题 1. 背景介绍 1.1 大语言模型的发展历程 1.1.1 早期的语言模型 1.1.2 Tr 阅读详情

相关推荐

Workbench-nCode下发动机引擎应力疲劳分析

在工程数据库中定义材料模型参数,结构场分析基本参数:密度7850Kg/m3、弹性模量210E9Pa、泊松比0.3,疲劳分析参数:应力-疲劳曲线表(S-N Curve),应力-疲劳曲线如下图2所示,如果没有合适的数据可使用结构钢材料进行分析。网格为四面体高阶单元,各零件的单元尺寸如下表1所示,单元质量分布如下图3所示。在workbench平台下搭建分析流程如下图6所示,前述设定完成后,提交求解后即可得到相应的应力、应变结果,更新结果后目录树中会有相应的nCode DesignLife插件,如下图7所示。

ansysxuexizhe的博客 1547

invalid use of non-static member function

现在有一个 Object 类,它有两个方法: Recv 负责接收数据,并传递给 Process Process 负责处理数据 我们希望这个类接收完数据后启动线程去处理,不阻塞后面的其他业务逻辑。 class Object { public: void Recv() { int a = 2; std::thread t(Process, a); // Do...

fengfengdiandia的专栏 4万+

告别串口升级!手把手教你为STM32H750的W25Q32制作MDK下载算法(QSPI篇)

本文详细介绍了为STM32H750的W25Q32制作MDK下载算法(QSPI篇)的完整流程,帮助开发者告别低效的串口烧录方式。通过定制下载算法,可实现20倍以上的烧录速度提升,支持完整的调试功能,显著提高开发效率。文章涵盖环境准备、核心算法实现、性能优化及常见问题解决方案,适合嵌入式开发者参考。

weixin_30735745的博客 403

「 C++ 11」std::thread “invalid use of non-static member function“问题处理

因为静态函数不与类的任何对象相关联。因此,我们可以直接将类的静态成员函数作为线程函数传递,而无需传递任何指向对象的指针。根据std::thread构造函数进行传参。

谁吃薄荷糖 7744

一觉醒后ChatGPT 被淘汰了

近日,AI 界貌似出现了一种新的趋势:自主人工智能。这不是空穴来风,最近一个名为 AutoGPT 的研究开始走进大众视野。特斯拉前 AI 总监、刚刚回归 OpenAI 的 Andrej Karpathy 也为其大力宣传,并在推特赞扬:「AutoGPT 是 prompt 工程的下一个前沿。」

Rocky006的博客 13万+

基于大模型的自动驾驶智能体:Agent-Driver架构、训练与实战指南

自动驾驶系统正从传统的模块化流水线向以智能体为核心的新范式演进。其核心原理在于将车辆视为一个能够与环境持续交互的自主决策智能体,通过多模态感知、记忆管理和基于大模型的推理能力,实现对复杂交通场景的理解与应对。这一技术价值在于利用大模型的常识推理和泛化能力,有望解决传统方法在长尾场景下面临的挑战。在应用场景上,智能体驱动架构特别适合处理动态交互密集、需高层语义理解的城区驾驶、无保护转弯及突发状况应对。本文聚焦的Agent-Driver项目,正是这一方向的典型实践,它通过融合视觉、语言大模型与强化学习,构建了一

weixin_28729843的博客 529

记录出现错误: invalid use of non-static member function

非静态成员函数的使用无效 出现原因:回调函数的指针类型为void(*) 解决办法:在该函数前加上static关键字 class MqttClient { public: MqttClient(std::string host, int port, std::string username, std::string password, bool subscribe); std::string GetSubscribeMessage(); private: std::string host_;

面包的博客 8588

SCCM实战指南:从零搭建企业级Windows自动化部署平台

本文提供了一份详细的SCCM实战指南,手把手教你从零搭建企业级Windows自动化部署平台。内容涵盖环境规划、AD架构扩展、SQL Server配置、SCCM主站点安装,以及最终实现操作系统镜像的自动化部署,旨在帮助IT管理员彻底告别手动装机,实现高效、规范的Windows设备批量管理。

weixin_29251337的博客 638

c++ error: invalid use of non-static member function

c++ error: invalid use of non-static member function

xiaozhi 3622

Vensim系统动力学建模实战:从理论到仿真优化【案例详解】

本文详细介绍了Vensim在系统动力学建模中的实战应用,从基础理论到仿真优化全面解析。通过人口增长、供应链库存优化等典型案例,展示如何利用Vensim构建动态模型并进行参数优化,帮助读者掌握系统动力学建模的核心技术与实践技巧。

weixin_29231725的博客 476

RH850从0搭建Autosar开发环境【7】- Davinci Configurator之CanTp模块配置详解(上)

RH850从0搭建Autosar开发环境【7】- Davinci Configurator之CanTp模块配置详解(上)

weixin_42412049的博客 2297

【技术问题】C++多线程pthread_create error: invalid use of non-static member function

问题如下 pthread_create error: invalid use of non-static member function 先简要解释下pthread_create这个函数的各个参数: param1: 为指向线程标识符的指针。 param2: 用来设置线程属性。 param3: 线程运行函数的起始地址。 param4: 运行函数的参数。 出错往往是第三个参数,报错的原因要求我们要将...

Being self-discipline leads to freedom 2789

Xilinx系ZYNQ学习笔记(一)Vivado使用说明

vivado使用学习

贾saisai的博客 1873

invalid use of non-static member function:ROS 初始化subscriber时问题的解决

MoveBase_cmd_vel_sub = node_handle.subscribe( "/movebase_cmd_vel", 60, DHRobotBase::moveBase_cmd_vel); // 订阅 topic 在使用这句话时出现这个问题: error: invalid use of non-static member function "/movebase...

跃动的风的博客 3088

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

C++ invalid use of non-static member function

https://www.cnblogs.com/jianglei-tz/archive/2012/09/02/static-member-function.htmlC++编译报错:invalid use of non-static member function - 知乎

298

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

关于类中重载sort函数的报错问题(解决error: invalid use of non-static member function 'bool Solution::cmp(int, int)')

刷LeetCode的时候,由于最终结果是要写一个solution的类,但是比较头疼的是sort似乎不可以写一个cmp函数来重载。 例如 class Solution { public: int Hash[1005]; bool cmp(int a, int b){ return Hash[a] != Hash[b] ? Hash[a] < Hash[b]...

qq_41562704的博客 3814

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C++中static关键字在类中常见问题分析

一.static变量的初始化问题 static变量是和类绑定的变量,和一般变量和对象绑定不同。它在类实例化(创建对象)之前就分配空间,而非static变量是在创建对象时进行空间分配。那么该在哪里对static变量进行初始化呢? 1.能否在构造函数里进行static变量的初始化? 由前面的叙述可知,static变量在对象创建前就要进行空间分配。而构造函数是在创建对象时进行的调用。因此,

Just for funnnnnnnnnnnn 1337

ROS 报错:error: invalid use of non-static member function

代码: rs_camera_info_subscriber_ = nh.subscribe("camera/color/camera_info", 1, &ContinuousDetector::rsCameraInfoCallback); error: invalid use of non-static member function ubscriber_ = nh.subscribe...

chenyr0021 3123

C++ 多线程 报错invalid use of non-static member function

创建一个类test: class test { public: void func() { std::cout<<"test"; } }; main函数多线程调用test: test *t=new test; std::thread th(t->func); 编译报错,GCC编译器报错invalid use...

xysjj的博客 1万+

「 C++ 11」std thread “invalid use of non-static member function

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。 既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、

2401_84166672的博客 931

Linux C++调用线程报错 error: invalid use of non-static member function

问题描述:基于C++创建一个录音的类,抓取mic的pcm数据,并返回。 class MicRecordImpl { void* audioThread(void *param); void startRecord(void); }; 其中,在实现类有一个线程函数: void* MicRecordImpl::audioThread(void *param) { //d...

chenliang0224的专栏 4578

error: invalid use of non-static member function

转载学习:https://blog.youkuaiyun.com/bill_ming/article/details/6872165 #include &lt;iostream&gt; using namespace std; class A { public :     A (int i)     {         a = i;     }     int fun(int b)     {   ...

天才樱木 3万+

「 C++ 11」std thread “invalid use of non-static member function(1)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。 既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、

2301_76379606的博客 1126

pthread_create error: invalid use of non-static member function

问题描述:基于C++创建一个录音的类,抓取mic的pcm数据,并返回。 class MicRecordImpl { void* audioThread(void *param); void startRecord(void); }; 其中,在实现类有一个线程函数: void* MicRecordImpl::audioThread(void *param) { //do...

Aero's WorkSpace. 3721

常见错误(1):error: invalid use of non-static member function

在c++中,这种错误一般就是错误地调用了不属于某个类的成员函数或者数据成员。 例如在使用ros的tf包进行坐标变换时,对于tf::Quaternion quat_tf,如果试图用quat_tf.x来读取四元数的第一个元素,就会出现上面的错误。必须用 tf::quaternionMsgToTF(quat_msg, quat_tf) 把其转换成geometry_msgs::Quaternion...

limhsysu的博客 2万+
上一篇: while(!feof(...)) 中加if(!feof(...)) 问题
下一篇: 浅析C++中的this指针
i丹明扬
博客等级 码龄15年 331粉丝 115原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值