我知道这是非常基本的,但不知何故,我正在研究不同的技术,我已经混合了我的 C++ 概念
我创建了一个简单的程序,但是在调用析构函数时它给出了异常。
下面是代码:
#include "stdafx.h"
#include<iostream>
using namespace std;
class Employee
{
public:
Employee(char *name){
cout<<"Employee::ctor\n";
myName_p = new char(sizeof(strlen(name)));
myName_p = name;
}
void disp(){cout<<myName_p;}
~Employee()
{
cout<<"Employee:dtor\n\n";
delete myName_p;
}
private:
char *myName_p;
};
int main()
{
Employee emp("check");
emp.disp();
return(0);
}
要求大家明确这个基本概念。根据我的理解,我们不能使用 delete[] ,因为在这种情况下我们没有使用 new[] 。虽然我尝试过使用 delete[] ,但它仍然给出错误