当前位置: 首页 > news >正文

用ps做网站主页网站闭站保护

用ps做网站主页,网站闭站保护,足球比分网站建设,吉林集安市建设局网站1.对象存储 1)栈存储: 对于局部对象,它们存储在栈上。当进入包含对象定义的代码块时,对象被创建并压入栈中。 例如: class fun { public: int a; }; void func() { fun A; // 对象存储在栈上,随着函数结束自动销毁…

1.对象存储

1)栈存储:

对于局部对象,它们存储在栈上。当进入包含对象定义的代码块时,对象被创建并压入栈中。

例如:

class fun {
public:
int a;
};
void func() {
fun A;  // 对象存储在栈上,随着函数结束自动销毁
A.a = 10;
}

栈存储的对象生命周期由其所在的作用域决定,作用域结束时对象自动销毁,不需要手动释放内存。

2)堆存储:

使用 new 运算符在堆上动态分配对象。

例如:

class fun {
public:
int a;
};
int main() {
fun* p = new fun();  // 在堆上分配对象
p->a = 20;
// 记得使用delete来释放内存
delete p;
return 0;
}

这种方式可以根据程序运行时的需求灵活分配内存,但需要手动使用 delete 来释放内存,避免内存泄漏。

对象恢复

2.序列化和反序列化:

1)序列化:是将对象的状态转换为可以存储或传输的格式,比如转换为字节流。可以通过重载 

例如,将一个包含基本数据类型成员的类对象序列化为一个文本格式:

#include <iostream>
#include <fstream>
class fun {
public:
int a;
friend std::ostream& operator<<(std::ostream& os, const fun& obj) {
os << obj.a;
return os;
}
};
int main() {
fun obj;
obj.a = 30;
std::ofstream file("a.txt");
file << obj;  // 将对象状态序列化到文件
file.close();
return 0;
}

2)反序列化:是从存储或传输的格式中恢复对象状态。可以通过重载 >> 运算符来实现简单的反序列化。

例如,从之前存储的文本文件中恢复对象状态:

#include <iostream>
#include <fstream>
class fun {
public:
int a;
friend std::istream& operator>>(std::istream& is, fun& obj) {
is >> obj.a;
return is;
}
};
int main() {
fun obj;
std::ifstream file("a.txt");
file >> obj;  // 从文件反序列化对象状态
std::cout << "Recovered a: " << obj.a << std::endl;
file.close();
return 0;
}

3.对象复制和移动语义:

1)复制:可以通过定义拷贝构造函数来复制对象。

例如:

class fun{
public:
int a;
MyClass(const fun& other) {
a = other.a;
}
};
int main() {
fun obj1;
obj1.a = 40;
fun obj2 = obj1;  // 调用拷贝构造函数复制对象
std::cout << "obj2 a: " << obj2.a << std::endl;
return 0;
}

2)移动:C++11引入了移动语义,通过移动构造函数和移动赋值运算符来高效地转移资源的所有权。

例如,对于一个管理动态分配内存的类:

#include <iostream>
#include <utility>
class MyString {
public:
char* buffer;
MyString() : buffer(nullptr) {}
MyString(const char* str) {
buffer = new char[strlen(str)+1];
strcpy(buffer, str);
}
MyString(MyString&& other) noexcept {
buffer = other.buffer;
other.buffer = nullptr;
}
MyString& operator=(MyString&& other) noexcept {
if (this!= &other) {
delete[] buffer;
buffer = other.buffer;
other.buffer = nullptr;
}
return *this;
}
~MyString() {
delete[] buffer;
}
};
int main() {
MyString str1("Hello");
MyString str2 = std::move(str1);  // 调用移动构造函数
std::cout << "str2: " << str2.buffer << std::endl;
return 0;
}

http://www.yayakq.cn/news/979837/

相关文章:

  • 做视频网站视频放在哪里wordpress改了固定链接出现404
  • wordpress站酷首页linux 什么做网站好
  • 内蒙古建设厅安全资料网站广告网站建设及推广
  • 开发一个网站多少钱军事最新消息今天
  • 网站建设需求流程图网络营销文案实例
  • 17Z一起做网站广州站北京公司网站如何制作
  • 旅行网站建设的规划书wordpress 检索文件
  • 湖州网站网站建设山东网站制作软件
  • 网站建设培训会上的讲话wordpress ad widget
  • html5网站后台页面设计平面设计广告设计
  • 创建网站需要准备哪些资料网站建设流程报告
  • 用.net编写网站天辰建设网
  • wordpress媒体库是哪个文件夹南宁seo关键词排名
  • 辽阳网站建设多少钱北京做网站公司有哪些
  • 吴忠门户网站建设个人网页设计与实现论文免费
  • 网站开发语言有什么要求2022最新热点事件及点评
  • 邢台做网站推广找谁建设中标查询网站
  • 网站制作出租深圳建设网站哪里好
  • 网站设计平台万商云集(成都)科技股份有限公司
  • 无极网站建设wordpress搜索字段
  • 网页设计与网站建设从入门到精通个人物流网站建设方案
  • 网站关键字个数沈阳百度关键词推广
  • wap网站模板五力合一营销型网站建设系统
  • 在线制作网站的工具wordpress设定主页
  • 慢慢来 网站建设建设银行网站看不到e商
  • 门户网站怎么建设用ftp改网站电话怎么内页底部的没有变
  • 旅游网站的功能设计wordpress设置固定链接404
  • 国内的平面设计网站选择网站设计公司佛山
  • 平谷网站建设公司广州冼村是什么梗
  • 站长源码论坛国家高新技术企业补贴多少钱