我是靠谱客的博主 个性乐曲,最近开发中收集的这篇文章主要介绍C++类对象创建,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C++类对象
类定义实际上并没有创建任何任何spreadsheetcell,只是指定单元格的形状和行为。
对象的创建
使用类创建得到的对象时,会使用具体的值定义每个属性,将每个操作绑定到相应的方法,展现了某个对象在数据和行为上的个性。
创建一个类对象,与声明一个内置类型的普通变量相似,应该根据给定的一个初始式,将对象初始化为一个适当的状态:
有名对象:“类名 对象名[初始式]”栈对象,或者数据区对象
无名对象:“new 类名 [初始式]”使用new创建堆对象,返回对象首地址“类名 初始式 //创建临时对象,即右值对象。
eg:SpreadsheetCell S、new SpreadsheetCell、SpreadsheetCell{“nell”}

  • 堆栈中的对象
SpreadsheetCell myCell,anotherCell;
myCell.setValue(6);
anotherCell.setString("3.2");
count << "cell 1:"<<"myCell.getValue() << endl;
count <<" cell 2:"<<anotherCell.getValue() <<endl;

输出如下:

cell 1:6
cell 2:3.2
  • 堆对象
    还可以使用new动态分配对象:
SpreadsheetCell* mycell = newSpreadsheetCell();
myCellp->setValue(3.7);
cout << "cell 1:"<<myCellp->getValue()<<" "<<myCellp->getString() << endl;
delete myCellp;
myCellp = nullptr;

在堆中创建对象时,通过“箭头"运算符访问其成员。箭头运算符组合了解引用运算符(*)和成员访问运算符(.)可用这两个运算符替换箭头,但怎么做形式上很笨拙:

SpreadsheetCell* mycell = newSpreadsheetCell();
(*myCellp).setValue(3.7);
cout << "cell 1:"<<(*myCellp).getValue()<<" "<<(*myCellp).getString() << endl;
delete myCellp;
myCellp = nullptr;

注意:如果new为某个对象分配内存,那么使用完对象后,要用delete销毁对象,或者使用智能指针自动管理内存。
如果没有使用智能指针,当删除指针所指的对象时,最好将指针重置为null,这并非强制要求,但这样做可以防止在删除对象后意外使用这个指针,以便于调试。

当时类的定义创建一个对象时,系统会执行下面2个操作:
分配存储,根据非静态数据成员的声明,为它分配存储同时加载类的方法到代码区(类的方法只会在首次生成对象时加载一次)
初始化或构造:根据初始时调用相应的构造函数进行数据成员初始化。
初始化时或后续使用时对象可能会分配到一些资源(堆存储,锁或者文件)

最后

以上就是个性乐曲为你收集整理的C++类对象创建的全部内容,希望文章能够帮你解决C++类对象创建所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部