由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问一道c++面试题
相关主题
问个C/C++概念的问题Apple的一些C++概念题
贴两道面试题求一面试题解答
Code for Singleton design pattern没有offer郁闷, 有offer头疼.(伤人品)
gg面试题请问如果要求in place的话,递归是不是就不能用了?
关于singleton 的面试题c++中rand() 这个函数怎么实现的?
问一道c++面试题问个C++ ctor的问题
算法面试题也报一个Bloomberg offer
贡献一个Java 程序 面试题,看不懂为啥。请指教!再请教个:C变长参数的传递问题
相关话题的讨论汇总
话题: enforce话题: 函数话题: compile话题: heap话题: class
进入JobHunting版参与讨论
1 (共1页)
t*******y
发帖数: 637
1
Suppose you're responsible for writing class MyClass as part of a static
library.
a) How do you enforce that a single instance of this class be used at
compile-time? b) How do you enforce that instances only be allocated on the
stack, but not on the heap, at compile-time?
a)应该是用singleton
b)呢?
l******e
发帖数: 12192
2
private operator 'new'

the

【在 t*******y 的大作中提到】
: Suppose you're responsible for writing class MyClass as part of a static
: library.
: a) How do you enforce that a single instance of this class be used at
: compile-time? b) How do you enforce that instances only be allocated on the
: stack, but not on the heap, at compile-time?
: a)应该是用singleton
: b)呢?

p********7
发帖数: 549
3
用new就在heap了,直接用构造函数吧

【在 l******e 的大作中提到】
: private operator 'new'
:
: the

a****n
发帖数: 1887
4
既然是private new, 你怎么调用new? 除非friend
所以一般做法就是private new

【在 p********7 的大作中提到】
: 用new就在heap了,直接用构造函数吧
l******e
发帖数: 12192
5
you didn't get it.

【在 p********7 的大作中提到】
: 用new就在heap了,直接用构造函数吧
p********7
发帖数: 549
6
I see.
you are right

【在 l******e 的大作中提到】
: you didn't get it.
h**6
发帖数: 4160
7
反过来,只允许分配在堆,而不允许在栈,方法是私有析构函数。
new之后不调用delete,调用一个自己写的函数销毁内存。
m*****n
发帖数: 2152
8
为什么new之后不调用delete?

【在 h**6 的大作中提到】
: 反过来,只允许分配在堆,而不允许在栈,方法是私有析构函数。
: new之后不调用delete,调用一个自己写的函数销毁内存。

M********5
发帖数: 715
9
you didn't get it either.
这位han6说得是,如果只能在heap上创建类,怎么做?
答案就是,将析构函数设成private,这样,如果你在stack上定义一个对象,在程序结
束的时候,系
统会自动调用析构函数。但是现在析构函数是private的,所以就会出错,也就是说,
系统无法销毁对
象。那么就不能在stack上创建对象,所以只能在heap上用new来创建对象。这样一来,
又有个问题,
就是对象分配的空间要释放啊?那怎么办呢,就在类里面定义一个接口函数(注意,
public的函数才能
叫作接口函数),在这个函数里面调用析构函数,然后在其他函数中调用这个接口函数
,就可以释放对
象。
这就是,在new之后不调用delete,而调用这个接口函数的意思。
you got it?

【在 m*****n 的大作中提到】
: 为什么new之后不调用delete?
c*******w
发帖数: 63
10
可以把constructor 定义成private的吗? 提供一个函数, GetInstance等,函数里面用
new来得到instance.

【在 h**6 的大作中提到】
: 反过来,只允许分配在堆,而不允许在栈,方法是私有析构函数。
: new之后不调用delete,调用一个自己写的函数销毁内存。

1 (共1页)
进入JobHunting版参与讨论
相关主题
再请教个:C变长参数的传递问题关于singleton 的面试题
弱问1个python 语法问一道c++面试题
C++疑问:Animal a,Animal* a,哪种访问方式快算法面试题
函数被调用过程到底发生什么?贡献一个Java 程序 面试题,看不懂为啥。请指教!
问个C/C++概念的问题Apple的一些C++概念题
贴两道面试题求一面试题解答
Code for Singleton design pattern没有offer郁闷, 有offer头疼.(伤人品)
gg面试题请问如果要求in place的话,递归是不是就不能用了?
相关话题的讨论汇总
话题: enforce话题: 函数话题: compile话题: heap话题: class