【发布时间】:2012-07-08 21:06:48
【问题描述】:
#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 中未调用原型函数(是否打算定义变量?)。为什么它不抛出错误?
【问题讨论】:
-
... 因为这不是错误。这是有效的代码。
-
那为什么那条线没有命中呢?可能我很困惑?上面的 sn-p 应该发生什么?
-
@rocky:这是一个声明,不可执行。那么被“击中”是什么意思呢?
-
@BenVoigt:好的。如何使用或初始化这个 testObj 变量?
-
@rocky:在您的代码中,
testObj不是变量,而是函数。这就是警告告诉你的。
标签: c++ visual-studio-2008 visual-c++