ICode9

精准搜索请尝试: 精确搜索
  • Delphi 中constructor、destructor、property关键字的用法2022-08-29 23:04:19

    首先搜索现成的文章学习 原文:https://www.cnblogs.com/guorongtao/p/15132445.html 其次自己理解并总结最常见的用法 constructor用来定义构造函数,destructor用来定义析构函数,property用来定义属性。 constructor后面一般跟Create,destructor后面一般跟Destroy; override; 创建一

  • 构造函数和析构函数在函数调用过程中的调用情况2022-05-19 22:34:32

    一个有趣的类 我在这个类中定义了构造,拷贝构造,移动构造,拷贝运算符,移动运算符,析构,这几种特殊函数。这个类可以观察调用对象时的操作实现。 class Test { public: Test(string x):str(x){ cout << "Constructor " << str << endl; } Test(const Test& x) :str(x.str) { cout

  • 《STL源码剖析》问题总结2021-11-21 15:02:12

    个人笔记,持续更新,如果有遇到相同的疑问希望可以帮助大家。 Allocator P45 问题1: T* tmp = (T*)(::operator new((size_t)(size * sizeof(T)))); 调用系统全局operator new函数来申请一个内存空间,传入参数为size_t类型,使用了一个强制类型转换,函数返回void类型指针,再使用强制

  • RVO优化2020-03-31 13:56:37

    RVO--Return Value Optimization概述返回值优化(Return Value Optimization,简称RVO)是一种编译器优化机制: 当函数需要返回一个对象的时候,如果自己创建一个临时对象用户返回,那么这个临时对象会消耗一个构造函数(Constructor)的调用、一个复制构造函数的调用(Copy Constructor)以及一个析

  • 在python __del__处理期间删除子类之前的基类2019-12-10 02:57:36

    语境 我知道,如果我问一个关于Python析构函数的问题,那么标准的论点将是使用上下文.让我首先解释为什么我不这样做. 我正在为logging.Handler写一个子类.关闭实例后,它将一个哨兵值发布到Queue.Queue.如果没有,第二个线程将永远运行,等待Queue.Queue.get()完成. 我正在考虑其他开发

  • 何时在NDK中为全局变量调用C析构函数?2019-12-02 06:36:36

    我最近在使用NDK编译Android控制台程序时遇到了一个奇怪的问题. 该类的声明如下: class ClassP { public: ~ClassP() int number; } ClassP::~ClassP() { printf("number=%d", number); } 主要功能如下: // global variable ClassP p_instance; int main() { pri

  • 正确使用析构函数C#2019-12-01 11:18:31

    因此,我一直在考虑为我编写的类实现析构函数,但不确定如何真正释放内存,或者不确定是否由垃圾回收处理. class AutomatedTest { public bool testComplete = false; public bool testStopRequest = false; public List<Command> commandList = new List<Command>();

  • 基于try / finally yield的Python析构函数?2019-11-22 07:09:50

    我一直在测试受此http://docs.python.org/2/library/contextlib.html启发的肮脏黑客.主要思想是将try / final思想带到类级别,并获得可靠且简单的类析构函数. class Foo(): def __init__(self): self.__res_mgr__ = self.__acquire_resources__() self.__res_mgr__.next

  • PHP析构函数以及与C析构函数的关系?2019-11-09 06:30:13

    我很难理解在PHP类析构函数中应该做什么 我来自c. 在c中,如果我有这个: class A{ int n; ~A(){ } } class A2{ int* n; ~A2(){ delete n; } } 语言知道,如果A的实例超出范围,则应释放其成员n,因为n仅属于该实例.但是如果A2的实例超出范围,它不知

  • 是什么使__destruct在如此简单的PHP代码中被两次调用?2019-10-12 12:31:52

    <?php class A { static private $_instance = null; static public function Init() { self::$_instance = new A(); } function __construct() { echo "__construct\n"; } function __destr

  • c-默认虚拟目录2019-10-10 16:06:42

    让我们假设我有两个类: class Base{}; class Derived: public Base{}; 没有人可以举报,在这种情况下,如果我声明变量: Base b; Derived d; 我的编译器将为我生成d’tors,我的问题是,b和d的默认d’tors是否为虚拟?解决方法: my question is, the d’tors of the b and d will be

  • c – 当我push_back到向量时调用析构函数2019-10-09 03:04:43

    我有这个类定义: class FlashStream { public: explicit FlashStream(const char * url, vector<uint8> * headers, vector<uint8> * data, void * ndata, void * notifyData = NULL, uint32 lastModified = NULL); ~FlashStream(); private: NPStr

  • c – 为什么在析构函数中抛出异常时未调用重载删除?2019-10-07 20:05:02

    我编写了下面的代码,它重载了new和delete操作符,并在析构函数中抛出异常. 抛出异常时,为什么delete操作符中的代码没有执行(并且“bye”打印)? 如果不应该执行,(如何)释放内存?是one of the other delete operators被叫?是否会重载其中一个而导致执行相应的代码?或者内存根本没有被释放

  • c – std :: enable_shared_from_this:是否允许在析构函数中调用shared_from_this()?2019-10-07 17:07:18

    #include <memory> #include <iostream> struct A : public std::enable_shared_from_this<A> { ~A() { auto this_ptr = shared_from_this(); // std::bad_weak_ptr exception here. std::cout << "this: " <

  • javascript – 在typeScript中是否有析构函数2019-10-06 10:37:40

    TypeScript中有析构函数吗?如果没有,我该如何删除对象? 我尝试了析构函数()和~ClassName(),但它没有用.解决方法:JavaScript使用垃圾收集在不再引用对象时自动删除对象.没有析构函数或终结符的概念. 您无法观察垃圾收集器何时删除对象,也无法预测.

  • c – 为什么向量删除析构函数是由于标量删除而被调用的?2019-10-05 18:18:11

    我有一些代码在大型系统中崩溃. 但是,代码基本上归结为以下伪代码.我已经删除了很多细节,因为我试图把它煮到骨头上;我不认为这会错过任何重要的事情. // in a DLL: #ifdef _DLL #define DLLEXP __declspec(dllexport) #else #define DLLEXP __declspec(dllimport) #endif class

  • c – 对象被销毁后,标量类型的子对象会发生什么?2019-10-03 13:05:39

    请考虑此代码(针对续订和清理的不同值): struct T { int mem; T() { } ~T() { mem = 42; } }; // identity functions, // but breaks any connexion between input and output int &cleanse_ref(int &r) { int *volatile pv = &r; // could also use cin/cout

  • c – 虚拟继承中的析构函数2019-10-02 20:07:49

    class Base{}; class D1:virtual public Base{}; class D2:virtual public Base{}; class DD:public D1,public D2{}; int main(){ Base *pBase=new DD; delete pBase; } 这导致崩溃,但我修改如下: class Base{ public: virtual ~Base(){}; }; class D1:virtual pu

  • 为什么不删除在C 11中具有带有副作用未定义行为的析构函数的对象?2019-09-29 12:08:22

    This answer报价C 11标准3.8: if there is no explicit call to the destructor or if a delete-expression (5.3.5) is not used to release the storage, the destructor shall not be implicitly called and any program that depends on the side effects produced by the de

  • c – 面向对象的自杀或删除此;2019-09-29 00:07:21

    以下使用MSVC9.0编译的代码运行并输出Destructor四次,这是合乎逻辑的. #include <iostream> class SomeClass { public: void CommitSuicide() { delete this; } void Reincarnate() { this->~SomeClass(); new (this) SomeClass; } ~Some

  • c – 删除对象时,我无法调用__dealloc__2019-09-27 19:56:05

    我有以下C类: .H class ALabSet: public LabSet { public: PyObject *m_obj; ALabSet(PyObject *obj); virtual ~ALabSet(); PyObject *GetPyObj(); }; .CPP ALabSet::ALabSet(PyObject *obj): LabSet() { this->m_obj = obj; // Provided by &

  • C破坏表达式中的临时对象2019-09-27 06:05:20

    给出以下代码: #include <iostream> struct implicit_t { implicit_t(int x) : x_m(x) { std::cout << "ctor" << std::endl; } ~implicit_t() { std::cout << "dtor" << std::e

  • php – 如何销毁对象?2019-09-18 23:28:42

    据我所知(这很少),有两种方法,给出: $var = new object() 然后: // Method 1: Set to null $var = null; // Method 2: Unset unset($var); 其他更好的方法?我在这里分裂头发吗?解决方法:你在找unset(). 但请注意,您无法显式销毁对象. 它将保留在那里,但是如果您取消设置对象并且

  • c – 指向子类的指针上的delete是否调用基类析构函数?2019-09-17 17:05:27

    我有一个A类,它为其中一个字段使用堆内存分配. A类被实例化并存储为另一个类(B类)中的指针字段. 当我完成了B类的一个对象时,我调用了delete,我假设它调用了析构函数……但这是否也调用了类A的析构函数? 编辑: 从答案中,我接受了(请编辑,如果不正确): >删除B调用B ::〜B()的实例; >调

  • c – 好的或坏的:在构造函数中调用析构函数2019-09-10 23:08:28

    Break:我认为实际上并不是同一个问题,另一个问题是关于手动调用析构函数的一般性问题.这是在创建过程中,在类本身内部.仍然想知道当你这样做时会发生什么,如下面的问题中所述. 起初,我认为这很糟糕,真的很糟糕.只需分析构造函数的这段代码(见下文),由两个人做,需要将它转换为Delphi

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有