在另一个类中创建类的实例时出现问题
Trouble creating a instance of a class within another class
我有一个名为Heap的类。我试图在一个名为Graph的类中将Heap的实例作为私有成员,但这似乎不起作用。
class Heap{
private:
Node* container;
int size;
//... some more attrs ...
public:
Heap(int inSize){
size = inSize
//... initialize other private attrs ...
}
class Graph {
private:
int size;
Heap h(90);
public:
Graph(int inSize){
size = inSize;
}
看了这篇文章,如何用构造函数在另一个类中创建对象?,我仍然不明白为什么不允许在Graph类中初始化Heap。我的猜测是,私有成员不能初始化,它们只是占位符,所以没有物理内存给它们。这篇文章中的一条评论指出,有一个指针不是一个好的做法。
所以我的问题是:1.为什么这不是一个好的做法?如果这确实不是一个好的做法。2.为什么我不能从另一类的私有属性中实例化另一个类对象。3.除了指针,还有其他方法可以解决这个问题吗?4.此外,如果我没有自定义ctor,只使用默认的ctor,它似乎会起作用,我也不知道为什么。
我试图在一个名为Graph的类中有一个Heap实例作为私有成员,但这似乎不起的作用
你使用了错误的语法。
Heap h(90);
不是有效的语法。用途:
Heap h;
使用将其初始化为构造函数
Graph(int inSize) : size(inSize), h(90) { } // Or the appropriate size.
相关文章:
- C++ std::function 对于类 exept 的所有实例都是空的(只有 Visual2019 编译器问题)
- 在另一个类中创建类实例时出现问题
- 为什么我的类电影在创建电影实例时遇到问题?
- 在C++中将类实例添加到对象层次结构中的问题
- 在抛出 'std::invalid_argument' 的实例后终止调用 what(): stoi (找不到问题所在)
- 错误 C2280 / 在 std::vector 中实例化对象时复制构造函数出现问题?
- C++程序问题:抛出'std::invalid_argument'实例后终止调用
- 显式模板实例化问题
- 在 x86 32 位上的静态类实例中解决此问题
- 分割故障 - 遇到问题,创建新的数组实例
- 关于QLIST类型实例复制构造函数的一个奇怪问题
- 如何理解C++并发操作中同类实例导致死锁的问题
- 创建 QQuickItem 子类的实例是否有问题,我不打算渲染或添加到 QML 树中的实例?
- 创建'new'实例可以解决析构函数崩溃问题?
- 实例化函数模板的编译问题
- 从结构实例调用变量语法问题C++
- CPP-Netlib 问题,在抛出 'boost::exception_detail::clone_impl 的实例后调用终止
- 模板函数实例化的可移植性问题
- 实例变量列表中的对象未被保留?指针问题
- 由于静态库导致的单例多实例问题