在C++ 如何在堆中创建一个类的对象? 谢谢!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C++ 如何在堆中创建一个类的对象? 谢谢!相关的知识,希望对你有一定的参考价值。
一种是在栈上创建,形式如下:CSomeClass someObject;
一种是在堆上创建(动态分配),形式如下:
CSomeClass *pSomeObject = new CSomeClass();
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。 参考技术A 一种是在栈上创建,形式如下:
CSomeClass someObject;
一种是在堆上创建(动态分配),形式如下:
CSomeClass *pSomeObject = new CSomeClass();本回答被提问者和网友采纳 参考技术B new是堆中创建对象的方法,例如CWnd * m_pWnd=new CWnd();楼上回答的很好了
在 C++ 中使用另一个类的对象计数在一个类中创建一个数组
【中文标题】在 C++ 中使用另一个类的对象计数在一个类中创建一个数组【英文标题】:Making an array in a class with object count of another class in C++ 【发布时间】:2020-04-04 06:50:23 【问题描述】:如果我们在 c++ 中有两个类 Movie 和 Movies 会怎样。 Movie 类具有与该类关联的所有属性和方法。而 Movies 类是 Movie 对象的集合。所以我的理解是,我们必须在movies类中创建一个数组,其中包含movie类的所有对象,但是我们怎样才能以这种方式编写movies类的代码呢?
【问题讨论】:
但是我们怎样才能为电影类编写代码呢? 就像任何其他程序一样,您可以按照正确的顺序一个接一个地放置字符。我的建议是您查阅您的编程参考资料,然后尝试自己解决问题。如有必要,请询问有关尝试的问题。 您还需要了解使用类的基本概念。看看quora.com/When-should-I-use-classes-in-C++ 【参考方案1】:使用向量比使用数组更好
#include <vector>
class Movie
...
;
class Movies
public:
...
private:
std::vector<Movie> data;
;
至于班上的其他人,这完全取决于你。想想你想要对一组电影进行哪些操作,然后编写代码。例如,您可能想知道您的收藏中有多少部电影,您可能想将一部电影添加到您的收藏中,您可能想在您的收藏中找到一部特定的电影。想想你想要什么并为此编写代码。
【讨论】:
【参考方案2】:如果您事先不知道对象的数量(假设您使用main()
中的rng 生成Movie
的对象,或者您的教授将创建随机数量的对象)然后使用向量。
另一种选择是在构造函数中对它们进行计数,并通过函数将计数值作为Movies
中所需的数组大小返回:
class Movie
public:
Movie() ++count;
Movie(const Movie&) ++count;
Movie() --count;
static size_t movieCount()
return count;
static size_t count;
;
size_t Movie::count = 0;
class Movies : public Movie
public:
Movie array[movieCount()];
【讨论】:
以上是关于在C++ 如何在堆中创建一个类的对象? 谢谢!的主要内容,如果未能解决你的问题,请参考以下文章