由于缺乏更好的术语,我是OOP场景的新手。
所以这是一个类示例
class Example{
public:
Example(const char *);
~Example(); //Calls Destroy in Body
Example & copy(const char *);
Example & copy(const Example &);
private:
void destroy();
char * data;
unsigned int size;
};
以下是我在下面讨论的临时对象的示例。
Example & Example::copy(const Example & oldString) {
size = oldString.getSize();
data = new(std::nothrow) char[size];
if (data != NULL){
for (int i = 0; i <= size; i++){
data[i] = oldString.data[i];
}
}
else{
std::cout << "Data could not be initiallized with a size of" << oldString.getSize() << std::endl;
}
destroy();
return *this;
}
Example & Example::copy(const char * oldString){
Example newCopyString(oldString);
copy(newCopyString);
return *this;
}
有许多函数可以创建临时对象来转换传递给char *
对象的Example
。
所以我需要一种方法来删除copy(const char * oldString)
中的这个对象。
正如问题所说,我正在尝试delete
调用实例,我不知道如何。
答案 0 :(得分:0)
从法律上讲,对象可以通过
自杀delete this;
推荐这是一个很好的做法是一个完全不同的问题......总的来说,这不是一个好主意,它可能表明你组织内存管理的方式存在一些错误。