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

网站设计服务流程一流的南昌网站建设

网站设计服务流程,一流的南昌网站建设,一流的龙岗网站制作,大淘客网站建设🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C​​​​​​​ 🔥座右铭:“不要等到什么都没有了,才…

🐶博主主页:@ᰔᩚ. 一怀明月ꦿ 

❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C++​​​​​​​

🔥座右铭:“不要等到什么都没有了,才下定决心去做”

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀

目录

🐰对象的动态创建和销毁

🐰对象的复制

🐰对象的赋值


🐰对象的动态创建和销毁

new和delete这两个运算符实现对内存的动态申请与释放的。如果要动态创建和销毁对象也使用这两个运算符

例如有一个类为Box,可以动态创建一个对象:

new Box;

这样系统就会从内存堆分配中一块内存空间,存放Box的对象,调用构造函数初始化对象。如果分配成功,new运算符会返回分配的内存的首地址;如果返回失败,则会返回一个NULL。但是通过new创建的对象没有名字,所以在使用new创建对象时都要声明一个指针变量保存对象的首地址,例如:

Box * ptr=new Box;

另外,还可以使用new创建对象时给出实参,调用有参的构造函数初始化对象

Box* ptr=new Box(2,2,2);

ptr指针就可以访问公用的成员了

ptr->volume();

如果动态创建对象失败,则会返回空指针,所以为了安全起见,可以判断指针是否为空

if(ptr!=NULL)ptr->volume();

不需要使用动态创建的对象时,可以使用delete运算符销毁该对象

delete 指针名delete ptr

这样就可以销毁ptr所指向的对象,将对象占用的空间归还给堆,使用new动态创建的对象只能通过delete进行销毁,系统不会进行自动销毁。如果不销毁,堆内存将被逐渐消耗。指针一旦指向动态创建的对象,就不要改变指针变量的值了,可能会造成动态创建创建的对象无法被销毁,也可能指针指向其他对象,delete销毁对象时可能会删错对象

🐰对象的复制

对象的复制是指在创建对象时使用已有对象快速复制出完全相同的对象
类名 对象2(对象1);    代入法
类名 对象2=对象1;    赋值法
其中对象1是和对象同类的并且已经存在的对象,在这种情况下,系统会调用一个称为“复制构造函数”的特殊的构造函数。复制构造函数会将对象1的各数据成员的值逐个复制到对象2中相应的数据成员。复制构造函数只有一个形参,这个形参就是本类的常引用。复制构造函数的函数体主要是将形参中对象的各数据成员值赋给自己的数据成员,为保证数据安全,引用加上const,看看复制构造函数的函数形式:​​​​​​​
Box::Box(const Box &c)
{length=c.length; width=c.width; height=c.height;
}
即使程序中没有定义复制构造函数(每一个类都有一个复制构造函数),编译器会隐式地提供一个。即使定义了其他的构造函数,编译器也会提供一个复制构造函数,他会将实参对象的非static数据成员逐个复制到创建的对象中。
普通的构造函数和复制构造函数有哪些区别呢
(1)在形式上普通构造函数一般是形参列表,创建对象时通过实参列表给出初始化对象所需要各个数据成员的值。而复制构造函数的形参则只有一个,及本类对象的引用。
(2)在调用时系统会根据实际参数列表的类型来自动选择调用
(3)调用情况不一样,普通构造函数是创建对象时由系统自动调用;而复制构造函数是在使用已有的对象复制一个新对象时系统自动调用。以下三种情况才会复制对象:(1)创建一个新对象,并用同类对象初始化它。(2)函数参数是类对象(3)函数返回值是类对象
如果数据成员有指针变量时,复制构造函数会出现指针悬挂问题。
#include<iostream>
using namespace std;
class person
{
public:person(char* Name,int Age);person(const person &temp);~person();void setAge(int x){age=x;}void print();
private:char* name;int age;
};
person:: person(const person &temp)//复制构造函数
{name=new char[strlen(temp.name)+1];strcpy(name,temp.name);age=temp.age;cout<<"persson is called!!!"<<endl;
}
person::person(char* Name,int Age)//构造函数
{name=new char[strlen(Name)+1];strcpy(name,Name);age=Age;cout<<"persson is called!!!"<<endl;
}
person::~person()
{cout<<"persson is called"<<endl;delete []name;name=NULL;
}
void person::print()
{cout<<"name:  "<<name<<"age:  "<<age<<endl;
}
int main()
{person s1("张三",23);person s2(s1);s1.setAge(1);s2.setAge(2);s1.print();s2.print();return 0;
}
因此需要我们自己定义一个复制构造函数

🐰对象的赋值

对象赋值的一般形式:
对象1=对象2;

🌸🌸🌸如果大家还有不懂或者建议都可以发在评论区,我们共同探讨,共同学习,共同进步。谢谢大家! 🌸🌸🌸    

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

相关文章:

  • 百胜网站建设网站建设架构 服务器
  • 合肥大型网站设计湛江企业网站seo
  • 做相同网站违法吗wordpress标题怎么
  • 网站与网页俄罗斯搜索引擎推广
  • 万网建站教程朔州网站设计公司
  • 网站平台推广语录最新永久ae86tv最新
  • 手机上怎么做网站创业竞价系统
  • wordpress登入后台没反应郑州网站优化汉狮网络
  • 怎样可以查看网站是由哪个公司做的劳务网站怎样做
  • 番禺建网站公司网站建设公司网站
  • 长沙微信网站制作wordpress 4.8.4
  • 中国建设造价信息网站wordpress 权限设置方法
  • 学生制作设计个人网站成都网站建设sntuu
  • 开发网站做什么叫人做国外公司网站让老外做好还是国内人做好
  • 网站建设模板哪家好化妆品网站建设版块
  • 南宁市营商环境建设局网站用dw制作视频网站
  • 30天网站建设实录素材一比一高仿手表网站
  • 网站建设与维护案例用tornado做网站
  • 免费网站收录提交有做网站的吗 优帮云
  • 车陂手机网站建设报价易语言怎么制作网站
  • 莱芜市网站建设海口网站建设优化公司
  • 深圳做网站的公司搜行者seo网站后台登入模板
  • 网站建设合同模版模板设计原则
  • 创建企业手机微信网站门户建设和管理环保网站
  • 网站建设单位有哪些方面网站图怎么做会高清
  • 建外做网站的公司网站视频外链怎么做
  • 途牛网网站是哪家公司做的百度seo推广工具
  • 做网站外包需要提供什么wordpress 代码在哪
  • 公司内部网站建设方案东莞企石网站建设
  • 协会网站建设方案青岛网站建设公司专业公司