C/C++面试题四(稍微高级)
2007-06-16 11:23
309 查看
1.写出下面程序的输出
class abc;
void del(abc *pobj){
delete pobj;
}
class abc{
public:
abc(){
printf("abc/r/n");
}
~abc(){
printf("~abc/r/n");
}
};
int main()
{
abc *pobj = new abc;
del(pobj);
}
2.写出下面程序的输出
void* operator new(size_t size)
{
printf("malloc %u/r/n", size);
return malloc(size);
}
void operator delete(void *memblock){
printf("free/r/n");
return free(memblock);
}
class abc{
public:
abc(){
printf("abc/r/n");
throw int();
}
~abc(){
printf("~abc/r/n");
}
};
int main(){
try{
new abc;
}catch(int& i){
printf("%d/r/n", i);
}
return 0;
}
3.写出下面程序的输出
template <typename T>
class abc{
public:
abc(){
printf("primary/r/n");
}
};
template<>
abc<int>::abc(){
printf("member spec/r/n");
};
template<typename T, typename P>
class abc<T (*)(P)>{
public:
abc(){
printf("partial spec/r/n");
}
};
int main()
{
abc<void* (*)(int)> f_abc;
abc<int> i_abc;
}
4.下面的代码能否通过编译?为什么
class a{
public:
virtual ~a(){
}
private:
void operator delete(void *p);
};
int main()
{
a _1;
}
class abc;
void del(abc *pobj){
delete pobj;
}
class abc{
public:
abc(){
printf("abc/r/n");
}
~abc(){
printf("~abc/r/n");
}
};
int main()
{
abc *pobj = new abc;
del(pobj);
}
2.写出下面程序的输出
void* operator new(size_t size)
{
printf("malloc %u/r/n", size);
return malloc(size);
}
void operator delete(void *memblock){
printf("free/r/n");
return free(memblock);
}
class abc{
public:
abc(){
printf("abc/r/n");
throw int();
}
~abc(){
printf("~abc/r/n");
}
};
int main(){
try{
new abc;
}catch(int& i){
printf("%d/r/n", i);
}
return 0;
}
3.写出下面程序的输出
template <typename T>
class abc{
public:
abc(){
printf("primary/r/n");
}
};
template<>
abc<int>::abc(){
printf("member spec/r/n");
};
template<typename T, typename P>
class abc<T (*)(P)>{
public:
abc(){
printf("partial spec/r/n");
}
};
int main()
{
abc<void* (*)(int)> f_abc;
abc<int> i_abc;
}
4.下面的代码能否通过编译?为什么
class a{
public:
virtual ~a(){
}
private:
void operator delete(void *p);
};
int main()
{
a _1;
}
相关文章推荐
- C/C++面试题四(稍微高级)
- 4道稍微高级点的c++面试题,供初学者一窥门径
- 四道稍微高级点的 C++ 试题
- C/C++/C#面试题精选(1)
- C++常见面试题
- C/C++/C#面试题精选(2)
- c++的vector使用:c++面试题:从cin读入一组词并把它们存入一个vector对象,然后设法把所有词都改写为大写字母
- C++经典面试题(5)
- C++面试题--(六)
- php面试题之三——PHP网络编程(高级部分)
- C++面试题,自己实现String类的构造函数,拷贝构造函数,赋值操作符,append,replace,+运算符重载等
- C/C++ 面试题基础知识
- C/C++/C#面试题(4)
- c/c++笔试面试题(3)
- C++ 面试题总结
- 2015年 【华为c++技术面试题】找出重复的数字
- 3月27日C++面试题总结
- C++经典面试题(十二)
- c++常见面试题30道
- C/C++程序员应聘常见面试题深入剖析(转)