C++ class初探

本文讲述了在VSCode中使用C++刷LeetCode题目时遇到的类函数调用问题。主要讨论了类的位置、public和private的访问控制,以及如何正确调用非静态成员函数。作者在尝试调用非静态成员函数时遇到了错误,最终通过将函数改为static并使用类名::函数名的方式解决了问题。这对于初学者理解C++类的使用和函数调用具有一定的参考价值。
摘要由CSDN通过智能技术生成

在leetcode 用c++刷题时,本想将代码复制到vscode中编写运行,但是碰到了无法调用class中函数的问题。

1.class的位置

class 并不需要写在main中,在main上方即可。

2.public与private

public中的数据与函数允许外界访问,private的数据与函数不允许外进访问。通常leetcode给出的模板都是一个名为Solution的class,在其之下有一个public的函数,答题者需要在其中编写答案。

3.调用class中的函数

这个问题耗费了我一下午的时间去调试。凭印象调用函数Classname::membername总是失败,提示错误为非静态成员引用必须与特定对象相对C/C++(245),后来经过查阅资料,才发现对public的函数,如果静态static的应该用Classname::menbername来调用,非静态函数应该通过classname.membername来调用。
在我将调用方法更改之后,发现还是不行,提示错误为不允许使用类型名C/C++(254)。经查,原因是class Solution中仅需要填写答题的函数,并未也并不需要给出数据格式,因此我的数据与该class无关。
最后,我将函数改为static,使用Classname::membername调用解决了这个问题。

总结

将leetcode模板复制到vscod中进行编写时,应该在函数名前加上static,在main中调用时使用相应方法。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值