该网站上的许多答案都提到delete()调用析构函数。但下面的示例代码似乎delete()在析构函数内部调用。当对象在堆栈和堆中初始化时,delete() 的正确用法是什么?
#include <iostream>
using namespace std;
class SmartPtr {
int* ptr; // Actual pointer
public:
// Constructor: Refer https:// www.geeksforgeeks.org/g-fact-93/
// for use of explicit keyword
explicit SmartPtr(int* p = NULL) { ptr = p; }
// Destructor
~SmartPtr() { delete (ptr); }
// Overloading dereferencing operator
int& operator*() { return *ptr; }
};
int main()
{
SmartPtr ptr(new int());
*ptr = 20;
cout << *ptr;
// We don't need to call delete ptr: …Run Code Online (Sandbox Code Playgroud) c++ destructor new-operator dynamic-memory-allocation delete-operator
认为 myHashSet = HashSet<SomeClass>
在哪里 SomeClass.hashcode() = someField.hashcode()
如何返回具有指定哈希码的元素,即:
myHashSet.getElementWithHashCode((other as SomeClass).someField.hashcode())
Run Code Online (Sandbox Code Playgroud)
other并且里面的对象HashSet是不同的对象,除了值之外,具有不同的属性值someField。换句话说,这两种不同类型的对象具有可能具有相同值的公共字段。
很奇怪,HashSet 中没有这样的函数。以前没人需要吗?最快的方法是什么?
这行代码负责发送一封包含密码重置链接的电子邮件。
path('accounts/password-reset/', auth_views.PasswordResetView.as_view(), name='password_reset'),
然而,这封电子邮件看起来完全枯燥,阅读时很难区分重要部分。
为了吸引用户的注意力并更好地引导他们,我想为这封电子邮件添加风格。
可以通过以下行将自定义模板添加到电子邮件中:
...
path('accounts/', include('django.contrib.auth.urls')),
path('accounts/password-reset/', auth_views.PasswordResetView.as_view(html_email_template_name='registration/password_reset_email.html'), name='password_reset'),
...
Run Code Online (Sandbox Code Playgroud)
问题是电子邮件内的重置链接由 uidb64 值和令牌组成,例如:
localhost:8000/password-reset/calculated_uidb64/calculated_token
Run Code Online (Sandbox Code Playgroud)
将这些值传递给 的自定义模板的正确方法是什么password_reset_email.html?
考虑结构:
struct MainStruct {
struct A a;
struct B b;
struct C c;
};
Run Code Online (Sandbox Code Playgroud)
通常,编译器应该将 a、b 和 c 依次放入内存中并进行一定的对齐。
但是,如果我想让 a、b 和 c 的变量始终以 mainStruct 内的精确偏移量开始,而与它们的大小无关,该怎么办?“在编译时”执行此操作的便捷方法是什么?
举个例子: mainStruct 总共可能有 256 个字节,而a总是从 开始&mainStruct,b总是从 开始&mainstruct + 100,c总是从 开始&mainStruct + 179。
编辑:
mainStruct 的地址可能是可变的。这里重要的一点是偏移量始终是恒定的。每当我定义类型的变量时Struct MainStruct,该变量应该始终具有相同的内存布局,并且内部结构具有恒定的偏移量。