c++-在C++中,int();这么一行代码表达什么意思?

问题描述

在C++中,int();这么一行代码表达什么意思?

无意中发现的问题,简化了一下,以下代码C++是可以编译运行的,没发现有任何作用。stopStreamCBFun是数据类型,代码中当成函数运行竟然也能正常工作。我又加了一行int();也可以编译运行,当然实际上不管加几行这种代码,用gdb运行b main后总是会跳过这些代码,直接跳到下一行return 0; 也就是说这些代码其实是无效的,这个问题本身没什么用,我只是好奇为什么这样的代码编译能通过,类似的代码在C里面是会提示出错的。欢迎大家讨论。

#include
using namespace std;

typedef int (*stopStreamCBFun)();

int main()
{
stopStreamCBFun();
int();
return 0;
}

解决方案

在C++中int(a)是将a装换为int型,int()应该是没什么用,是不是就起到一个占位作用,以后要完善。

解决方案二:

根据我的理解,C++中是支持创建对象的,此处就相当于使用Int()创建了一个基本的整型对象Int,然而并没有为其命名,没有其变量名也就无法操作这里的内存。
于是,此处的开辟内存便丢失了,这行代码尽管是合法的,但是没有实际意义,而在C中,是没有对象概念的,C中只有函数,表达式,C编译器此时认为Int()是一个函数,而此处并没有定义以及声明相关的Int()函数,所以就会报错了。这就是我的理解,事实可能并不是这样,还望大家指正。

解决方案三:

真有人写这么奇怪的代码啊

解决方案四:

INT(number)Number 需要进行向下舍入取整的实数。int()为取整函数。

解决方案五:

int(); 编译器会认为他是一个int类型的未初始化的无名对象,因为c++中一切皆对象嘛。比如说A是一个类, 那么 A(); 则代表一个A类型的无名对象,
你创建对象不用他,编译器怎么会报错呢?

解决方案六:

C我没研究过,不过在C++里面我的理解是,类名()形式的语句是调用构造函数创建一个新的对象,虽然我们写构造函数的时候并没有写过返回值,但是我觉得它是有返回值得他返回创建出来的对象,只不过返回的过程被底层代管了,所以我们有时候会写这样的语句: CTest lctest = CTest();想像一下普通的函数调用,,根据需求我们通常会忽略函数返回值,即没有声明一个变量去容纳其返回值,其形式正好与这一句类似,我觉得其中原理相同
时间: 2024-11-03 20:50:29

c++-在C++中,int();这么一行代码表达什么意思?的相关文章

php中一行代码获取文件后缀名

 php中一行代码获取文件后缀名的方法要结合很多的函数了,我们这个有点像asp中的函数了,下面来一起看看吧. 实例: 代码如下   $filename = 'D:/wamp/www/sparkphp/rar'; $rs = strtolower(trim(substr(strrchr($filename, "."), 1))); 详解: strrchr()函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符: substr()函数是返回字符串的一部分,

uri-JSP中的一行代码 <%@ taglib

问题描述 JSP中的一行代码 <%@ taglib uri="http://java.sun.com/jstl/core 标准标签库里,这里的uri,是寻径找到相应的文件的.??这个uri我看不懂.. <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %> 解决方案 加上这一句使用jstl标签.使用冰箱不用先去学制冷技术吧?先会用就行. 解决方案二: 是在你的java

请教busybox makefile中的一行代码

问题描述 请教busybox makefile中的一行代码 大家好, CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; else if [ -x /bin/bash ]; then echo /bin/bash; else echo sh; fi ; fi) 这句话的目的是为了打印CONFIG_SHELL这个变量的值,可是第一个if中为什么要写成"$$BASH",写成"$BASH&q

Java8中使用一行代码读取文件_java

JDK7中引入了新的文件操作类java.nio.file.File,它包含了很多有用的方法来操作文件,比如检查文件是否为隐藏文件,或者是检查文件是否为只读文件.开发者还可以使用Files.readAllBytes(Path)方法把整个文件读入内存,此方法返回一个字节数组,还可以把结果传递给String的构造器,以便创建字符串输出.此方法确保了当读入文件的所有字节内容时,文件属性是关闭的,否则就会出现IO异常或其它的未检查异常.这意味着在读文件到最后的块内容后,无需关闭文件. 要注意,此方法不适合

弹窗-在js代码中执行到某一行代码中手动暂停,然后在手动启动执行

问题描述 在js代码中执行到某一行代码中手动暂停,然后在手动启动执行 我js代码中执行到某一行代码的时候,我想手动的暂停在某一行代码. 然后在通过手动的方式在启动执行下面的代码. 例如:我想在函数a中调用了函数b,而函数b的作用是弹出窗口,让用户输入信息. 我想获取到弹窗用户输入的信息在a函数中用. 但是现在实现的结果不理想.在执行完b函数弹窗的时候,a函数继续往下执行. 获取不到弹窗的用户输入的信息. 那位大神给个思路... 解决方案 function playVideo(){ player.

c++-在C++ primer中看到一行代码,有点不解。

问题描述 在C++ primer中看到一行代码,有点不解. template <typename T> class Blob{ public: typedef typename std::vector<T>::size_type size_type; 为什么中间有个typename,而不是直接写成这样: typedef std::vector<T>::size_type size_type; 谢谢啦. 解决方案 这个是在模板定义中,在你的代码中std::vector::

请问我把DataGrid中的数据导入到Excel最后打开只有一行代码

问题描述 从datagrid中导入excel代码如下:Response.Clear();Response.Buffer=true;Response.Charset="utf-8";Response.AppendHeader("Content-Disposition","attachment;filename="+Server.UrlEncode(filename));Response.ContentEncoding=System.Text.Enc

Skia深入分析6——skia中图像编解码代码概述

1.API和自注册机制 Skia中编码解码图片都只需要一行代码: SkBitmap bitmap; SkImageDecoder::DecodeFile("test.xxx", &bitmap);//由文件名解码,自动推断图片类型 //或者由流解码 SkFILEStream stream("test.xxx"); SkImageDecoder::DecodeStream(stream, &bitmap);//由输入流解码,自动推断图片类型 //编码

[WCF]缺少一行代码引发的血案

这是今天作项目支持的发现的一个关于WCF的问题,虽然最终我只是添加了一行代码就解决了这个问题,但是整个纠错过程是痛苦的,甚至最终发现这个问题都具有偶然性.具体来说,这是一个关于如何自动为服务接口(契约)的每个操作添加FaultContract与WCF服务元数据发布的问题.接下来通过一个简单的实例来说明这个因为少写了一行代码引发的血案. 一.手工添加FaultContract WCF采用基于消息的通信方式,Endpoint的ABC三要素之一的契约(Contract)的本质就是定义消息的结构.契约不