作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有这段代码:
#include <iostream>
class ZombieFetus{
private:
public:
ZombieFetus();
};
ZombieFetus::ZombieFetus(){
std::cout << "http://www.metal-archives.com/band/view/id/55878" << std::endl;
};
class FaceOfAVirus{
private:
public:
FaceOfAVirus(int);
};
FaceOfAVirus::FaceOfAVirus(int i){
std::cout << "http://www.metal-archives.com/band/view/id/74239" << std::endl;
};
int main(int argc, char **argv){
std::cout << "some random bands :" << std::endl;
ZombieFetus band1();
FaceOfAVirus band2(0);
}
编译:
$ g++ main.cc -Wall
当我运行它时,我得到了:
some random bands :
http://www.metal-archives.com/band/view/id/74239
ZombieFetus band1();
到底是怎么回事?程序是什么?这听起来像是一个初学者问题,如果它已经在 stackoverflow 上得到解答,请给我链接...我找不到答案...
(你有点太多了,无法一一感谢)
最佳答案
问题在于:
ZombieFetus band1();
被解释为函数声明,您在 C++11 中有两个可能的修复:
ZombieFetus band1{} ;
或 C++11 之前的版本:
ZombieFetus band1;
clang
多了一点helpful在这里并警告:
warning: empty parentheses interpreted as a function declaration [-Wvexing-parse]
ZombieFetus band1();
^
关于c++ - 我不明白的关于默认构造函数的一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20233473/
我是一名优秀的程序员,十分优秀!