由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问几个C++面试题吧
相关主题
C++ template questionHow does template work in C++
boost::function 的 syntax 问题共享我的C++面试题目精选
问个c++的template的问题C++ linking 弱问 (one file)
一个C++ template的问题template 类的继承问题
Any difference between class and typename identifier?C++ template question
[合集] 又被羞辱了一把... (转载)C++里get array size的问题 (转载)
请问这是什么错误呀C++ Q04: template member
g++能够生成C++ template展开之后的代码么?一个关于C++ template和overload的问题
相关话题的讨论汇总
话题: int话题: template话题: typename话题: bool话题: choice
进入Programming版参与讨论
1 (共1页)
m*****m
发帖数: 242
1
1.
template
bool is_int();
is_int must return true if T is int and false otherwise. How do you
implement is_int?
Choice 1
template
bool is_int()
{
return T is int;
}
Choice 2
template
bool is_int()
{
return false;
};
template
bool is_int()
{
return true;
};
Choice 3
template
bool is_int()
{
T a;
return dynamic_cast(&a) != 0;
}
Choice 4
template
bool is_int()
{
return typeof(T)
t****t
发帖数: 6806
2
挨个试试不就知道了...
m*****m
发帖数: 242
3
1 是不是选 3 吧?
throw B() 会先调用base contructor A(),然后 B();
尽管throw的是B(),但是B也是A, 而且 catch(A ex) 在前面, 所以调用catch(A
ex) ?
在 thrust (祝阳阳早日康复) 的大作中提到: 】
S**Y
发帖数: 136
4
I think you have typos
1.
you sure it is not
catch(A& ex) {
ex.Foo();
}
2. template specilization, but typos too.

【在 m*****m 的大作中提到】
: 1.
: template
: bool is_int();
: is_int must return true if T is int and false otherwise. How do you
: implement is_int?
: Choice 1
: template
: bool is_int()
: {
: return T is int;

t****t
发帖数: 6806
5
跟你说你挨个试试不就知道了...有在这儿发文的时间, 10个题都试完了

【在 m*****m 的大作中提到】
: 1 是不是选 3 吧?
: throw B() 会先调用base contructor A(),然后 B();
: 尽管throw的是B(),但是B也是A, 而且 catch(A ex) 在前面, 所以调用catch(A
: ex) ?
: 在 thrust (祝阳阳早日康复) 的大作中提到: 】

t****t
发帖数: 6806
6
你也应该试试再说人家是不是typo

【在 S**Y 的大作中提到】
: I think you have typos
: 1.
: you sure it is not
: catch(A& ex) {
: ex.Foo();
: }
: 2. template specilization, but typos too.

m*****m
发帖数: 242
7
呵呵, 现在没有C++编译环境。 你说的对, 谢谢

【在 t****t 的大作中提到】
: 跟你说你挨个试试不就知道了...有在这儿发文的时间, 10个题都试完了
S**I
发帖数: 15689
8
应该是3;如果是catch(A& ex),那就应该是5。

【在 m*****m 的大作中提到】
: 1 是不是选 3 吧?
: throw B() 会先调用base contructor A(),然后 B();
: 尽管throw的是B(),但是B也是A, 而且 catch(A ex) 在前面, 所以调用catch(A
: ex) ?
: 在 thrust (祝阳阳早日康复) 的大作中提到: 】

m*****m
发帖数: 242
9
能这样理解吗?
catch(A ex)是把 B slice后当A用, 而 catch(A& ex)是polymorphism

【在 S**I 的大作中提到】
: 应该是3;如果是catch(A& ex),那就应该是5。
S**I
发帖数: 15689
10
我觉得可以这么理解

【在 m*****m 的大作中提到】
: 能这样理解吗?
: catch(A ex)是把 B slice后当A用, 而 catch(A& ex)是polymorphism

t****t
发帖数: 6806
11
第一个是调用了A::A(const A&)
第二个才是slice

【在 m*****m 的大作中提到】
: 能这样理解吗?
: catch(A ex)是把 B slice后当A用, 而 catch(A& ex)是polymorphism

f*********r
发帖数: 68
12
for this problem
catch(A ex)调用A::A(const A&)
catch(A& ex)是polymorphism, not slice

【在 t****t 的大作中提到】
: 第一个是调用了A::A(const A&)
: 第二个才是slice

f**y
发帖数: 138
13
It seems nobody here knows that the purpose of question number 1 is to test
template specialization.
general form:
template is_int() { return false; };
specialized form for int:
template <> is_int() { return true; };
So the choice is 5.
1 (共1页)
进入Programming版参与讨论
相关主题
一个关于C++ template和overload的问题Any difference between class and typename identifier?
问一个C++的问题[合集] 又被羞辱了一把... (转载)
C++ template请问这是什么错误呀
C++ class template specialization questiong++能够生成C++ template展开之后的代码么?
C++ template questionHow does template work in C++
boost::function 的 syntax 问题共享我的C++面试题目精选
问个c++的template的问题C++ linking 弱问 (one file)
一个C++ template的问题template 类的继承问题
相关话题的讨论汇总
话题: int话题: template话题: typename话题: bool话题: choice