由买买提看人间百态

topics

全部话题 - 话题: 析构
1 2 3 4 5 6 7 8 9 下页 末页 (共9页)
l********a
发帖数: 1154
1
来自主题: Programming版 - vector的析构问题
就是个类自己包含自己的例子
例如,html的tag,


<...>


<...>
<...>
<...>


如果我用这个类A表示一个tag,每个tag下面可能有其他tag,都看做它的孩子,这样可以
对这些tag做相同的处理,如果没有孩子,它的children vector就是空的,现在需要写一
个析构函数来析构,由于vector存放的是指针形式A *,构造函数也能看出来每一个孩子
都是new出来的,调试的报错的确是在
void deallocate(pointer _Ptr, size_type)
{ // deallocate object at _Ptr, ignore size
::operator delete(_Ptr);
}
往上追踪看的确是这个类的析构函数出错了,不能delete?但是现在的析构函数从流程上
好像是对的,比较郁闷
l********a
发帖数: 1154
2
来自主题: Programming版 - map析构
上次问那个vector的释放问题,在trust和bihai的指点下,delete了2次的问题已经
解决了.但是程序依然报错,查了无数资料,加了很多检查的代码,找来找去,发现是跨dll
调用时,map的析构问题
类中有一个这样的数据:
class testGA
{
map params;
....
};
由于需要读取文件才能知道长度,因此调用的地方
直接 this->params.insert(make_pair(string1,string2));
因为我这个dll提供了很多功能,其他功能挨着测试过去,
最后才发现是功能执行完deallocate的时候::~pair出错了
有人说不能跨dll传递stl对象,可是我的map不是指针,没有new出来
所以也没办法在析构函数中delete,如果在析构时用this->params.clear()也会报错
有人说dll分配内存,哪里分配,哪里释放.为什么在析构函数中clear map也会出错?(
testGA::testGA();和testGA::~testGA();在同一个文件中)
这... 阅读全帖
l********a
发帖数: 1154
3
来自主题: Programming版 - vector的析构问题

多谢,才知道这个网站
http://codepad.org/NLcZWxcd
我尝试了2种~A方法,调用析构函数的注释掉了
codepad上面有个Segmentation fault,应该跟析构有关
奇怪的是,我用code::blocks,gcc编译竟然没有错?2种析构都没报错
h****8
发帖数: 599
4
来自主题: Programming版 - vector析构的时候怎么办?
程序结束时,a生命结束,系统调用析构。
难道你认为一定要显式调用析构才行么
l********a
发帖数: 1154
l********a
发帖数: 1154
6
来自主题: Programming版 - vector的析构问题

这是从书上看的,说是vector退出code block并不会真正释放内存
需要跟空vector来swap交换,所以才加上去的
我看报错的位置,应该是deallocate的时候出错了,跟swap这句关系好像不大
我每次跟踪调试到那个delete _Ptr那句的时候,就没有上下文了,找不到到底哪里出的
错,但是vs ide的函数调用堆栈前面几个倒都是A **的析构,可能析构A *的时候编译器
需要A *的地址
l********a
发帖数: 1154
7
来自主题: Programming版 - map析构

The
我真是郁闷了.随便写了个几乎逻辑完全一样的测试demo
主要的map分配和函数调用都是一样的,就连那个split函数接受一个vector引用都是一
模一样的,
结果竟然没有错误?
难道我发现的错误又不对劲?可是实际项目中中断的确在我自建类的析构函数啊
有空的哥们帮我瞧下,800多k,dll和exe都已经建立好,所有的引用都是相对路径,直接解
压缩打开sln文件,不用做任何设置,F5就可以运行
http://115.com/file/anwt4fv2#DllDemo.zip
为什么这个却没有出错呢?析构也能正确进行?
b***i
发帖数: 3043
8
来自主题: Programming版 - map析构
基本上,主程序就调用了dll的函数,在dll里面进行类的生成和使用,毕竟param是
private的,你没有跨dll使用类。不管怎么样,还要找出到底怎么样才能让snippet出
错。你原来说params.clear()在析构,现在看来不在析构里面。
再想想,还有没有别的什么不同?比如,你使用了几次那个函数?
s*****g
发帖数: 5159
9
来自主题: Programming版 - vector析构的时候怎么办?
前来天请教过vector,当时记得有人说vector不用初始化也不用析构。我现在出现内存
占用比想象的大很多,所以请教一下具体情况。
class A{
private:
vector val;
public:
A();
AddValue(int m){
val.push_back(m);
};
~A(){};
}
调用:
A a;
for(long i = 0; i<1000000000; i++)
a.AddValue(10);
s*****g
发帖数: 5159
10
来自主题: Programming版 - vector析构的时候怎么办?
我的情况是这样的
for(int i=0; i<100; i++){
A a;
for(long j=0; j<10000000000; j++)
a.AddValue(10);
}
这种情况下,a是什么时候析构的呢?语言是C++。
s*****g
发帖数: 5159
11
来自主题: Programming版 - vector析构的时候怎么办?
我以前是用C的,C++的理解停留在C++标准制定以前的水平,99年本科学的,那时候没
教STL,应该是当
时刚刚确定STL的标准。
我这个蹩脚C++程序员学的,如果构造函数有
new / malloc
析构就要自己写
delete / free
一个类的实例用完以后要delete其指针。
这些年做算法研究一下落伍了,这些新的STL需要找工作了才重新学。汗颜啊。
l********a
发帖数: 1154
12
来自主题: Programming版 - vector的析构问题

哈哈,thrust兄别恼,我是说我实际的工程代码里面调用来调用去,哪个析构函数可能去
delete已经被deconstruct过的对象
不是说贴出来的例子
l********a
发帖数: 1154
13
来自主题: Programming版 - map析构

跟踪了2天才找到这个问题,难道dll内自定义的类不能使用stl容器吗?
像我这种定义的容器数据非指针,该怎么释放呢?
没有其他解决办法吗?我这个map没有跨dll传递啊?
在testGA类定义里面声明,
构造函数里面map.insert(make_pair())添加内容,使用完后立即clear(),
在析构函数内没有操作map,因为已经被clear()了,又不是指针,无法delete
下断后出错在~testGA的时候会调用~map,
testGA.dll!std::map,std::
allocator >,double,std::less char>,std::allocator > >,std::allocator char,std::char_traits,std::allocator > const ... 阅读全帖
l********a
发帖数: 1154
14
来自主题: Programming版 - map析构

这个实在没法写了,是另一个exe调用我这个dll,map在我的dll内定义的一个类中
class testGA
{
private:
//parameters
map params;
...
};
构造函数中,构造添加到params,用完就清除了
for (int i=0;i<(int)(node->children_.size());++i) { this->params.insert(make
_pair(node->children_[i]->name_,node->children_[i]->value_)); }
// 这里是其他代码,使用了map内容
this->params.clear(); // 清空map
析构函数中没有对map的操作
============================================
由于是exe调用dll,我再想想怎么重现问题.
看看能不能整个最小化的例子再出现这个错误
X*4
发帖数: 101
15
来自主题: Programming版 - 这个dtor为啥能被调用呢
关于boost shared_ptr的,
#include
#include
#include
class A{
public:
virtual void sing() = 0;
protected:
virtual ~A(){
std::cout << "dtor of base" << std::endl;
}
};
class B: public A{
public:
virtual void sing()
{
std::cout << "DO re mi fa so la" << std::endl;
}
~B(){
std::cout << "Dtor of Derived " << std::endl;
}
};
boost::shared_ptr create(){
boost::shared_ptr
p(new B());
...
阅读全帖
p***o
发帖数: 1252
16
来自主题: Programming版 - Interview question: is the following code OK?
主动析构Foo没问题,因为 至少还有一个引用(就是你正在析构的这个),
所以map::erase只析构shared_ptr,不会回到~Foo里面。
但是如果程序结束的时候map不为空而且每个里面的对象只有一个引用
(就是map里这个),那么map析构的时候 可能 会有重入问题,具体取
决于map析构时的行为,就是说如果shared_ptr析构引起Foo析构的时候
key还能在map中找到,那么就会有问题。
y**i
发帖数: 1112
17
来自主题: JobHunting版 - 问个C++题
如果把析构函数声明为私有的,那就是不能用delete了,那在heap上创建对象的话,如
何析构呢?首先要收回heap上allocate的内存的话,只能用placement new对吧?然后
还不能手动调用析构函数,必须要调用一个公用Destroy函数,在这个Destroy函数里调
用析构函数,最后再free在heap上allocate的内存,是这样么?
M********5
发帖数: 715
18
来自主题: JobHunting版 - 问一道c++面试题
you didn't get it either.
这位han6说得是,如果只能在heap上创建类,怎么做?
答案就是,将析构函数设成private,这样,如果你在stack上定义一个对象,在程序结
束的时候,系
统会自动调用析构函数。但是现在析构函数是private的,所以就会出错,也就是说,
系统无法销毁对
象。那么就不能在stack上创建对象,所以只能在heap上用new来创建对象。这样一来,
又有个问题,
就是对象分配的空间要释放啊?那怎么办呢,就在类里面定义一个接口函数(注意,
public的函数才能
叫作接口函数),在这个函数里面调用析构函数,然后在其他函数中调用这个接口函数
,就可以释放对
象。
这就是,在new之后不调用delete,而调用这个接口函数的意思。
you got it?
r**h
发帖数: 1288
19
来自主题: JobHunting版 - 求教rotate matrix扩展的解法
因为A的析构函数没有定义成虚函数
从而A类指针指向B类时调用析构函数找到的是A析构函数的入口地址,B的析构函数未被
执行
d**********x
发帖数: 4083
20
来自主题: JobHunting版 - 问个C++的基础问题
如果你不是一次删完的话,但是要从尾部删,直接resize即可,循环和function call
都是有cost的,而且写着也麻烦不是
其实clear和直接析构的差别在于vector本身是否需要析构,大头在哪边要看你的元素
有没有析构的cost

overhead?
d****p
发帖数: 685
21
来自主题: Programming版 - Interview question: is the following code OK?
这个问题好,非常适用用于面试 :-)
一个类没显示定义析构就真得没有吗?
其成员shared_count的析构被定义,所以编译器会为其产生一个内在的析构.
z****e
发帖数: 2024
22
来自主题: Programming版 - 这个c++ static var 很有意思
红猪侠的semantics是越来越高级了。
我理解,这个编译器自动生成的记录,也是以后“条件析构”conditional
destruction 的依据。
很久以前不是所有全局静态都要在startup时候初始化么?但是C++有了lazy
evaluation 机制,就能initialize on invocation.这条记录,就是析构的时候看用不
用析构。
p***o
发帖数: 1252
23
来自主题: Programming版 - 问个程序问题

// spB 析构,啥事都没有
// spA 析构,~A() got called, 然后A::pb 析构,~B() got called
这是B, C同理。
e********y
发帖数: 66
24
来自主题: Programming版 - windows下mfc,dll, etc.
我有一个在Visual studio 6 下开发的mfc的dll project,暂且叫它a.dll。现在想用cpputest来对其中每个class做unit test。对这个project不是很了解,主要是对windows的用visual studio开发的东西不熟,文档也没有,开发的人也走了。
这个project本身好像是个类似ocx的dll,它只export了DllGetClassObject,DllCanUnloadNow,DllRegisterServer,DllUnregisterServer这4个函数。这个dll本身好像是给别的ocx控件提供服务的。
为了unit test, 我在这个project中加了一个含有main函数的test.cpp文件,另外新加了一个configuration用来编译成win32 console。在test.cpp的main中调用afxwininit来支持mfc。试着做了一个简单的cpputest测试例来测试其中的某一个class,编译和跑测试例本身好像没问题。但是在程序退出时总有run time error的exception。跟踪进去发现P... 阅读全帖
y**b
发帖数: 10166
25
来自主题: Programming版 - C++的"初始化"小结
以前读C++ Primer第四版中文版给自己写了个摘录,一搜索“初始化”,发现内容还很
庞杂,贴出来供参考,前面是页号。
042 两种初始化: 直接初始化(), 拷贝初始化=
044 变量初始化:类类型调用默认构造函数,局部内置类型不初始化,全局内置类型初
始化为零。
080 容器元素的值初始化(未指定元素的初始化式时):类类型调用默认构造函数,内置
类型置零。
097 数组元素的初始化(同变量初始化规则044):元素为类类型的数组调用默认构造函数
;局部内置数组不初始化,全局内置数组初始化为零。
117 new动态数组元素的初始化:类类型调用默认构造函数,内置类型不初始化,或指定
进行值初始化为零(且只能为零)。
151 new动态对象之初始化:类类型调用默认构造函数,内置类型不初始化,或指定进行
值初始化为任意值。
对提供了默认构造函数的类类型,没有必要进行值初始化, 会自动调用构造函数:
string *p=new string;和string *p=new string();无区别。
对内置类型或未定义默认构造函数的类类型,存在区别:int *p=new int... 阅读全帖
c*********u
发帖数: 21
26

一轮的phone,所以比较简单。是hr问的。
1. throw exception的次序significant吗?为什么?
2. 如果没catch到,会有什么情况发生?
3. A:B,A能访问B的private的memeber吗?为什么?
4. 构造函数可以是虚函数码?析构函数呢?为什么。
5. template的class可以继承非template的class吗?为什么。
6. 可以把构造函数放到private里面吗?为什么。析构函数呢。
7. template的function可以有default argument吗?为什么
8. 在C++里面,float point的数的相加次序significant吗?为什么?(这个没答出来,
随便猜了个sure)
9. 随便说两个排序算法,原理,复杂度。
比较郁闷的是还要做online的test。差不多作了一小时半。。。
然后可能还有下一轮 "intensive"的phone interview。。"before we can bring u on
site.."
c********u
发帖数: 18
27
来自主题: JobHunting版 - 一道面试的选择题
c 么?
因为change destructor into virtual 可能影响derived class的一些使用
例如 :
class A
{
public:
A(){};
~A(){cout<<"destructor A"< };
class B: public A
{
public:
B(){};
virtual ~B(){cout<<"destructor B"< };
void main()
{
A* p=new B();
delete p;
}
This will result in:
destructor A;
But if we declare ~A() as virtual ~ A(), then the result will be:
destructor B;
destructor A;
所以,如果B的destructor析构了B的一些成员变量的话,在非virtual的情况下,这些
成员变量不会被析构掉,但是在virtual的情况下会。
e******0
发帖数: 211
28
来自主题: JobHunting版 - C++ virtrual destructor
不行, base 定义了 析构函数是virtual,
derived必须也定义析构函数是virtual
B*********n
发帖数: 8
29
来自主题: JobHunting版 - 请教大家一道关于c++的面试题
What is wrong with the below code?
class A
{
char *p;
public:
A(const char* str)
{
p=new char[strlen(str)+1];
strcpy(p,str);
}
~A()
{
delete p;
}
};
int main()
{
A s("Object s");
A t=s;
s.~A();
A u("Object u");
u=s;
return 0;
}
看完代码后,我的答案是:
1, 用delete[] p 而不是 delete p
2. A t=s, 用了默认的拷贝构造函数,而它用得是shollow copy
3, s.~A(), 显示调用了析构函数
4. u = s ,... 阅读全帖
g********E
发帖数: 178
30
来自主题: JobHunting版 - 问个C++的基础问题
查了下原来析构是destruct,明白了,如果我就用默认的,
This destroys all container elements, and deallocates all the storage
capacity allocated by the vector using its allocator.
这样是不是析构就不如clear/resize快?
resize不错,非常符合我的需要:)

call
b******7
发帖数: 92
31
来自主题: JobHunting版 - 问个C++的基础问题
vector的大概的实现(省略很多细节)。
如果在for循环里面定义vector,则会调用构造和析构函数,导致elem不断的new和
delete
而如果在外面定义,则只会调用vector的构造和析构一次,即一次new和delete
template
class vector{
public:
vector(size_t n){capacity = n;elem = new T[capacity];size=0;}
~vector(){delete [] elem;}
void clear(){size=0;}
....
....
private:
T * elem;
int capacity;
int size;
....
};
w********r
发帖数: 14958
32
来自主题: Movie版 - Matrix逻辑漏洞的非正常解释
1, neo并不是一个普通的程序。 他被赋予了一些后门,正常的析构函数没有能够析构他
2,neo当时比smith牛鼻多了,把它干死了
3,smith本身就有变成其他人的能力,被neo一搞程序被破坏了。因此成了病毒,可以
复制别人
4,但是smith功力不够,权限不够
5,这里有争议,现实世界可能是另一个虚拟世界。只有neo,oracle,白胡子知道这一点
6,你描述的不清楚
7,matrix就是个操作系统,有个各种process状态的queue, 这个东西出了问题。neo掉
出了这个queue。 法国人是第一代的neo, 他掌握了matrix很多的后门。 那个车站就
是其中一个。
8,就是没地儿跑了。 更重要的是,他想把自己最后的能力交给smith,好让smith能够
战胜neo。 让neo去找机器源头,让neo以牺牲自己的方式,帮机器消灭smith. 这是她和
neo心领神会的东西。
9,这个时候smith已经掌握了系统所有的特权,因此能干死neo了。
10,matrix根本不知道每个程序是干什么的。matrix不知道谁是病毒,谁是正常程序。
后来机器球在neo身上连了好多电线,就是... 阅读全帖
T******7
发帖数: 1419
33
本片最主要的设定是什么呢?梦中梦对不对?这在程序的角度来说再直观不过了,那就
是——递归,如果做梦是一个函数Dream,那么梦中梦就是该函数的递归调用。
比起一般的递归调用来,该程序的特殊之处是,它是一个多线程的递归调用,也即是说
每一次递归都会新建一个线程来执行函数体。因此该递归函数有两种结束机制,一种是
wait超时(药物失效),另一种是由其调用函数来结束(kick)。
而由于硬件平台所限,该递归只能进行四层,因为每次递归都需要消耗系统资源,所以
递归深一层,系统运行就越慢(梦境每深一层,时间就变慢20倍)。一旦在第四层的时
候资源耗尽(做梦者生命耗尽),就会产生栈溢出,因此线程就会进入僵死状态(
limbo状态)。
而一旦将运行超时时间设置得过长(强力镇静药物),则会导致子线程运行过长从而耗
尽资源。此时如果子线程还没有被上层调用函数强制结束(撞击),则会被detach(在
梦中死去),因此进入僵死状态(进入limbo状态)。
而为什么多层次的梦唤醒需要同步撞击呢,这就跟我们析构一个含有指针的STL容器一
样,如果不遵守顺序,那么就会出现容器被析构而指针内容还在从而发生内存泄露的... 阅读全帖
j*****h
发帖数: 62
34
来自主题: Programming版 - 一个C++的问题
我对STL不熟,请教一个问题。加入我定义了一个类
class foo {
hash_map table;
void addvalue(const string & key, int value) {
table[key] = value;
}
}
假设foo的一个对象a,调用了很多次addvalue, 在a对象析构的时候,没有对a做table.
clear(),或者逐个erase所有的key,会有memory leak吗?换句话说,hash_map的析构
函数会自动释放所有的key, value所使用的内存吗?
X****r
发帖数: 3557
35
来自主题: Programming版 - 菜鸟请教smart pointer
我不明白你的问题。你有两个StrBlob对象b1和b2,他们各有一个
share_ptr > >成员对象b1.data和b2.data,这两个
share_ptr指向同一份vector。b2析构的时候b2.data也析构,但是
b1.data还指向这份vector,引用计数不为零。
i****k
发帖数: 668
36
STL 还会管你这些事情么,他哪知道你的指针是new出来的还是栈上的,有析构函数调
一下析构函数就完了吧
b*****d
发帖数: 61690
37
学者析四川什邡增设第一书记:紧急事态下特例
http://www.sina.com.cn 2012年07月12日11:09 南都周刊
比“市委书记”更厉害的父母官是什么?四川县级市什邡给出了答案:“市委第一
书记”。
7月5日晚,什邡召开全市干部大会,来自上一级的四川德阳市委组织部官员宣布最
新的人事任命:“经中共四川省委同意,中共德阳市委决定:中共德阳市委常委、副市
长左正同志兼任中共什邡市委第一书记;中共什邡市委书记李成金同志协助左正同志工
作。”
此项立即生效的任命意味着,什邡市委大院出现市委第一书记、市委书记共存的人
事格局。阔别中共地方组织权力谱系近30年的第一书记设置,在四川什邡重新出现。
空降
在13位德阳市委常委中,49岁的左正排名第6,在7位德阳副市长中位居第二。
由上级党委常委兼任下一级党委一把手的做法,多出现于经济或政治地位突出的市
区县。比如,省会城市的市委书记,由省委常委兼任;地市级机关所在地的区委书记,
一般会由地(市)委常委兼任。
在四川德阳下属6个区县中,仅绵竹市委书记由一位德阳市委常委兼任,因为多家
重量级企业设在绵竹。
不过,市委常委空降至区县兼... 阅读全帖
d****p
发帖数: 685
38
来自主题: Programming版 - Interview question: is the following code OK?
你这个是不折不扣的递归析构.
和原先例子不同.如果对象被shared ptr管理,该对象的席构是被shared ptr接管的,不
是被erase所在的容器控制的.
这个题目如下三种情况是不同的:
std::map< key_type, T* >
std::map< key_type, T >
std::map< key_type, boost::shared_ptr >
a**********s
发帖数: 588
39
int main()
{
Derived *Var = new Derived();
>>>> 这个语句, 分别调用基类和派生类的构造函数, 于是
>>>> Constructor: Base //1
>>>> Constructor: Derived //2
Base Var2;
>>>> 这个语句, 调用基类构造函数, 于是
>>>> Constructor: Base //3
Var2 = (Base) *Var;
>>>> 这个语句有一丝丝复杂, 等号右边产生一个临时Base类型的变量,
>>>> 调用Base类的"拷贝构造函数" Base(const Base&), 但是
>>>> 这个你没有定义, 所以什么都没有打印出来
>>>> 临时变量消灭的时候, 调用析构函数, 于是:
Destructor : Base //4
delete Var;
>>>> 这个比较简单
>>>> Destructor : Derived //5
>>>> Destructor : Base //6
return 0;
>>>> 这个也比较简单, 因为Var1的生命周期随着函数的返回结束
>>>
B*****t
发帖数: 335
40
来自主题: JobHunting版 - C++面试问题,高人请进啊~~~
Printer* Printer::makePrinter() {
Printer* pPrinter = NULL;
try {
pPrinter = new Printer;
} //编译器在这里加入了汇编代码。当Printer的构造函数或者Printer父类的构造
函数Throw Exception时,会自动跳到这里这些执行这些代码,然后根据分配给Printer
在堆上内存的地址,回收这些内存, 对pPrinter的赋值不会被执行,调用析构函数也不
会被调用。
...
}

有个
Con
存泄
看出
f****4
发帖数: 1359
41
来自主题: JobHunting版 - A problem about Heap and Stack.
effective c++ & more effective c++上有讨论
如果禁止一个对象在stack上生成;把析构函数声明成私有函数
如果只想在heap上生成;构造函数声明成私有;同时提供虚拟构造函数(这里不是指
virtual constructor,而是指用factory patterns生成对象)
a****n
发帖数: 1887
42
来自主题: JobHunting版 - Two C++ questions from Bloomberg on-site
1. In which cases can the destructor of a class not be called?
1)ctor 抛出异常
2)该class 为父类且析构函数非虚, delete 子类指针的情况
3)当然, 你用了new, 没用delete
4)用了placement new 没使用显示desctor
估计考官想听到1)
a****n
发帖数: 1887
43
来自主题: JobHunting版 - one C++ question?
父类的析构函数为共有虚函数, 或者保护非虚函数
r***u
发帖数: 241
44
来自主题: JobHunting版 - Apple的一些C++概念题
很久没碰C++了,有一些没答好,但还是拿到了onsite
我记得的问题有:
1. struct 和 class的区别
2. 什么是partially specialized template
3. 如果一个程序在main函数执行前就crash了,是什么原因
4. 如何防止一个类被拷贝
5. 能不能直接调用析构函数
6. 什么是virtual function,效率如何,调用一次发生几次indirection
7. 32位机,一个类定义一个整数,一个虚函数,sizeof是多少。
另一个类定义一个整数,两个虚函数,sizeof是多少。
8. 能不能在constructor里面调用虚函数
y*******o
发帖数: 6632
45
来自主题: JobHunting版 - Apple的一些C++概念题
1. struct 和 class的区别
class default private, struct default public, nothing more
2. 什么是partially specialized template
3. 如果一个程序在main函数执行前就crash了,是什么原因
4. 如何防止一个类被拷贝
private assignment operator, private copy constructor
5. 能不能直接调用析构函数
yes
6. 什么是virtual function,效率如何,调用一次发生几次indirection
1 ?
7. 32位机,一个类定义一个整数,一个虚函数,sizeof是多少。
8
另一个类定义一个整数,两个虚函数,sizeof是多少
12
8. 能不能在constructor里面调用虚函数
never ever do it, according to effective c++
h**6
发帖数: 4160
46
来自主题: JobHunting版 - 问一道c++面试题
反过来,只允许分配在堆,而不允许在栈,方法是私有析构函数。
new之后不调用delete,调用一个自己写的函数销毁内存。
m********o
发帖数: 427
47
来自主题: JobHunting版 - 发一个MathWorks的电面
两周多以前面的,一直比较忙,没空写。职位就是那个application support engineer
第一轮是HR打电话,瞎砍了一通。
第二轮是Technical interview。主要是Math, C++, MATLAB (后两个是我选的)
Math的问题有:
怎么用加减乘除算sinx,什么时候deterministic finite automaton,什么是NDFA,
用DFA来表示NDFA的空间复杂度会变成多少。什么是P,什么是NP。Maximum flow算法。
还有一些简单的公式推导。
编程的问题问了很多概念性质的,process和thread的区别,什么是parallel
computing,什么是multi-threading,什么是mutex,什么是多态,为什么要用虚拟析
构,pass by value和pass by reference的区别. #include 是啥意思。。。
MATLAB问怎么转置,怎么判断变量类型,怎么找帮助文件等等。
s*********g
发帖数: 153
48
来自主题: JobHunting版 - Bloomberg面经+个人找工作小感
书面合同已经拿到,工资为Bloomberg给FSD的市场价,reallocation费几千,没有股
票,无论怎样,目前只有公司挑人,没有人挑公司,对于我这个初入社会的人,不从也
得从了。
Bloomberg面经:
第一轮,两个senior,
先问TA,RA经验,我淘淘不绝,扯了15分钟,他们还觉得不够,抓住细节,死扣问我问
题,我只好努力解释。。。又过了10分钟,总算在项目问题上放手了。设计问题,有一
堆股票,还有股票值,不断更新,如何在某一时刻返回,前20大股票值和其对应的股票
公司,大概是一个map 键与值的转换问题。
第二轮,一个senior。
上来写code,写一个Vector class,包括构造函数,析构函数,push_back操作等等,
中间夹在各种C++细节问题。第二题,找一个missing num 在99个数中,num范围(1<=x
<=100),99个数互不重复。第三题,什么是map,插入,删除,搜索时间复杂度,什么
是hashing,和map比较。第四题,三个人站在三角形不同的顶点上,同时跑,不相遇的几
率是多少?
第三轮,又一个senior,
请问什是多态... 阅读全帖
n***o
发帖数: 68
49
来自主题: JobHunting版 - 请问析构函数执行顺序
为什么是先子类再父类这么个顺序呢?
t*****j
发帖数: 1105
50
来自主题: JobHunting版 - 请问析构函数执行顺序
起床时候先穿内衣后穿外衣,睡觉时候先脱外衣后脱内衣。
1 2 3 4 5 6 7 8 9 下页 末页 (共9页)