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

佛山微网站推广如何创建自己的网站平台

佛山微网站推广,如何创建自己的网站平台,门户网站demo下载,兰州有互联网公司嘛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.hotlads.com/news/4678.html

相关文章:

  • 网站做app的好处数据网站有哪些
  • 绥化网站建设淘宝店铺推广方法
  • 工商局网站建设方案韶山seo快速排名
  • 和人妖做的视频网站百度竞价推广开户费用
  • 数据库和网站开发徐州网站建设方案优化
  • 统计 网站关键字 布局哪有学电脑培训班
  • 晋城网站建设电话株洲网站建设
  • 网站建设漳州windows优化大师win10
  • 汉中公司网站建设晋城seo
  • 做网站设计是什么专业百度平台app下载
  • php建设网站教程线上培训课程
  • 网站后台管理 ftpwindows优化大师是自带的吗
  • 织梦网站地图模板推广普通话宣传内容
  • 连云港权威网站建设价格百度提交入口网址在哪
  • 做交易网站深圳优化排名公司
  • 邢台网站优化站长网站查询工具
  • 网站域名不想实名认证刷关键词要刷大词吗
  • 潍坊网站建设选聚搜网络好百度快速排名用是
  • 免费外贸网站在线品牌如何做推广
  • 免费网站认证连云港seo
  • 做网站主流网站怎么推广软件让别人下载
  • 咸阳网站制作网站seo思路
  • mysql数据库做网站seo薪资水平
  • 找人做网站不算诈骗罪吗短链接
  • 重庆永川网站建设价格网站排名优化培训电话
  • 网站建设基础百度百科申请百度收录网址
  • 做vue用哪个网站网络营销理论
  • 网站中的下拉菜单百度网站推广申请
  • 如何做网站豆瓣班级优化大师下载
  • 网站建设哪家公司靠谱seo公司