Redian新闻
>
请教大家一道关于c++的面试题
avatar
请教大家一道关于c++的面试题# JobHunting - 待字闺中
B*n
1
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 , 用了默认的拷贝构造函数, 用的shollow copy, 而且s 里的动态内存被释
放了
我想请教大家的是:关于 1, 我在网上查了一下,有人说对于,没有析构函数的类型
,delete p 也是可以的, 这种说法对吗?
我的答案对吗?全吗?
谢谢了!
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。