正在销毁调用实例
Destroying the Invoking Instance
我是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
调用实例,但我不知道怎么做。
从法律上讲,对象可以通过自杀
delete this;
推荐这是一个好的做法是完全不同的事情。。。一般来说,这不是一个很好的主意,它可能表明您组织内存管理的方式存在一些错误。
相关文章:
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 我收到以下错误:抛出'std::bad_alloc'实例后终止调用
- 对象实例化调用构造函数的次数太多
- 如果 std::vector::clear() 不是静态的,如何在没有实例的情况下调用它?
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- C++中的单例实现在调用 getInstance 函数时不会产生相同的类实例
- 为什么静态数组成员变量在调用对象的实例后不显示任何内容?
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- 在抛出 'std::runtime_error' 的实例后终止调用 what(): Filebuf 和 ostream 的 I/O 错误
- 从基类实例调用派生类方法而不进行强制转换
- 以下代码如何工作以每次为唯一调用堆栈唯一实例化模板函数?
- 在字符串函数中抛出'char const*'实例后调用的终止
- 如何使用 c++ 从另一个 cpp 文件中的 main.cpp 调用实例化类
- 统一功能使用模板专业化和接口来调用实例和原始类型
- 调用实例化函数时发生链接器错误
- 正在销毁调用实例
- 为什么我可以静态地调用实例函数