gpt4 book ai didi

c++ - 为什么编译器不将此标记为错误而不是警告?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:16:20 24 4
gpt4 key购买 nike

#include <iostream>

using namespace std;

class test{
public:
test() { cout<<"CTOR"<<endl; }
~test() { cout<<"DTOR"<<endl; }
};

int main()
{
test testObj();
cout<<"HERE"<<endl;

}

输出:

HERE

编译器跳过“test testObj();”行并编译其余部分并发出警告,运行时将生成输出。警告是“在 VC++ 2008 中未调用原型(prototype)函数(是否为变量定义?)。为什么它不抛出错误?

最佳答案

因为这不是错误。

您的代码违反了 most-vexing parse (总而言之,test testObj(); 没有定义变量,它声明了一个函数)。

关于c++ - 为什么编译器不将此标记为错误而不是警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11386709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com