avatar
Question about a TICPP example# Programming - 葵花宝典
m*e
1
这是TICPP中的一个example
#include
#include
#include
using namespace std;
int count = 0;
void out_of_memory() {
cerr << "memory exhausted after " << count
<< " allocations!" << endl;
exit(1);
}
int main() {
set_new_handler(out_of_memory);
while(1) {
count++;
new int[1000]; // Exhausts memory
}
} ///:~
但编译居然报错:
g++ -c NewHandler.cpp
NewHandler.cpp: In function `void out_of_memory()':
NewHandler.cpp:16: error: `count' undeclared (first use this function)
avatar
X*r
2
std::count是里的一个函数,你using namespace std;又定义了一个重名的
全局变量,编译器自然不知道你在函数里指的是哪一个。你用另一个变量名就好了。
教训就是,一般来说,不要using namespace std;

【在 m********e 的大作中提到】
: 这是TICPP中的一个example
: #include
: #include
: #include
: using namespace std;
: int count = 0;
: void out_of_memory() {
: cerr << "memory exhausted after " << count
: << " allocations!" << endl;
: exit(1);

avatar
m*e
3
many thanks for clarifying!

名的

【在 X****r 的大作中提到】
: std::count是里的一个函数,你using namespace std;又定义了一个重名的
: 全局变量,编译器自然不知道你在函数里指的是哪一个。你用另一个变量名就好了。
: 教训就是,一般来说,不要using namespace std;

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。