首页 > 编程语言 >C++一些bug的记录

C++一些bug的记录

时间:2023-05-06 14:12:09浏览次数:38  
标签:记录 int C++ 类型 Test foo bug 表达式 构造函数

目录

表达式必须具有类类型 但它具有xxx类型

错误一般发生在使用.进行访问时,原因可能在于:

  • 你以为你定义了一个类对象,其实你是声明了一个函数,在编译器看来;

  • 对类对象指针采用.的方式访问其成员变量;
    也包括基本类型变量,错误地使用.

      int a = 10;
      a.foo();           // 显然会提示“错误:表达式必须包含类类型”
    
  1. 情况 1

     class Test{
     public:
     	Test(){ }
     	void foo(){ }
     };
    
     int main(int, char**){
     	Test t();                // 编译器会将 t 视为一个函数;
     	t.foo();                 // 出错,表达式必须包含类类型
     	return  0;
     }
    

    修改方法:

     // 对象的定义,修改为:
     Test t;
    
     当构造函数中存在一些参数时:
    
     class Test{
     public:
     	Test(int i) {}                    // 但要避免默认单参构造函数:Test(int i = 0) {}
     	...
     }
    
     int main(){
     	Test t(5);
     	...
     }
    
  2. 情况 2

     Test* t = new Test(5);
     // 错误访问成员函数的形式:
     t.foo();               
    
     // 正确写法:
     t->foo();
    

标签:记录,int,C++,类型,Test,foo,bug,表达式,构造函数
From: https://www.cnblogs.com/FrostyForest/p/17377091.html

相关文章

  • 【已解决】Microsoft Visual C++ Redistributable is not installed
    【Error】导入torch,提示报错:MicrosoftVisualC++Redistributableisnotinstalled,thismayleadtotheDLLloadfailure.【Cause】Anaconda没有默认安装在C盘;系统没有安装VC++Redistributable程序。【Resolve】VC++Redistributable.exe双击安装,重启电脑即可。......
  • 《c++徒步》宏篇
    预处理命令参考链接:https://blog.csdn.net/akpe80900/article/details/102070084预处理命令是什么预处理语句,预处理语句是以#为起始标记,后面跟上预处理关键词。预处理功能,例如,宏定义、文件包括、条件编译等define语法://用来定义宏#define使用://定义常量#defineMAX_WI......
  • 高速爬过C++(3级)
    3级了!!不管做什么,我们都是在想适应所处的环境,真实的或者虚拟的。所以一个好的工具就该让我们在适应方面如虎添翼。因此C++程序就是个能接收环境的输入,然后经过处理,再输出到环境而环境里有什么,不外乎是万物,万物如何用C++来表达,或者C++里用什么来表示万物c++里用类型和变量变......
  • [Luogu-P1007]题解(C++)
    PartIPreface原题目(Luogu)PartIISketch给定一个正整数\(L\),表示独木桥长度。给定一个正整数\(N\),表示桥上士兵的数量。给定\(N\)个整数,分别表示每个士兵的坐标。规定走到\(0\)坐标或\(L+1\)的位置为下桥,两个士兵相遇时不能走过去,他们会各自回头走。求出所有士......
  • 高速爬过C++(2级)
    恭喜你升到2级,打怪不容易,虽然别的地方打一个怪可以升到99级!当我们用铅笔在白纸上画画时,会发生什么?我们弄脏了白纸。为啥会弄脏,原来是摩擦将铅笔粉留在了白纸上。虽然我们可以只关心画出什么样的图案而不管那些什么复杂的物理现象但是有时力道、速度也会影响成画的效果。所以......
  • 统一controller的日志记录
    定义切面,然后匹配controller,around进行log打印@Slf4j@Component@AspectpublicclassControllerLogAspect{@Pointcut("execution(*delta.main.controller..*(..))")publicvoidrequestServer(){}@SneakyThrows@Around("requestServer(......
  • 高速爬过C++(0级)
    魔镜:你想要什么?我:什么都想要魔镜:你有什么?我:什么都没有魔镜:我有的,你已经拥有。 掠过一本C++教程目录,似懂非懂的概念名称撞击大脑,让我两眼冒金星。魔镜什么都没有,所以我也什么都没有,心里默念了好几遍。我从0级开始闯入这本C++教程,虽然很久很久以前玩过,多少级?不说不说,好汉不......
  • [AtCoder-AT_ABC108_B]题解(C++)
    PartIPreface原题目(Luogu)原题目(AtCoder)PartIISketchPartIIIAnalysis观察这道题,我们很容易想到,必须推导出\(x1,y1,x2,y2\)与\(x3,y3,x4,y4\)之间的关系。我们观察下图。可以发现:\(\begin{aligned}\begin{cases}x3=x2-(y2-y1)\\y3=y2+(x2-......
  • web网页在手机端打开后左右可以滑动的css bug怎么解决
    web网页在手机端打开后左右可以滑动的cssbug怎么解决这个问题通常是由于在移动设备上使用了固定宽度的元素或容器而导致的。解决这个问题的一种方法是使用CSS媒体查询来检测移动设备,并将容器的宽度设置为100%。具体操作如下:@mediaonlyscreenand(max-width:768px){.cont......
  • [CodeForces-143A]题解(C++)
    PartIPreface原题目(Luogu)原题目(CodeForces)PartIISketch设有一个\(2\times2\)的棋盘,上面可以填入\(1-9\)的数字。给出\(6\)个数字,为每行每列以及每个对角线上的数字之和,求相应的摆放方式,无解输出\(-1\)。PartIIIAnalysis观察此题数据规模,不难发现数据......