如何在另一个对象的构造函数中声明和创建对象?

how to declare and make objects inside another object's constructor?

本文关键字:声明 创建对象 构造函数 一个对象      更新时间:2023-10-16

我正在学习C 。我正在在另一个对象内部制作几个对象,但是编译器正在给出错误 - 无匹配的功能呼叫'grass :: grass()'

这是"世界"对象的标题文件。在其中,我宣布了两个"草"对象: -

#ifndef WORLD_H
#define WORLD_H
#include "Grass.h"
using namespace std;
class World
{
public:
World();
private:
Grass g1;
Grass g2;
};

这是"世界"对象的CPP文件。在构造函数中,我试图制作"草"对象,但失败了。

#include "World.h"
#include <iostream>
using namespace std;
World::World()
{
g1(200, 200);
g2(300, 200);
} 

您的语法是错误的。您正在寻找所谓的构造函数初始化列表。尝试(假设您有正确的Grass构造函数的签名):

World::World() : 
    g1(200, 200),
    g2(300, 200)
{
    // Nothing 
}