3
我正在學習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);
}
構造函數初始化列表,可用於需要建築在初始化包括原始類型的任何成員變量。 – Andy
@Andy,如果可能,應始終使用它,即使該類型具有默認構造函數,由於不是兩個調用(ctor +賦值運算符),您只能調用複製/移動ctor。 – vsoftco