C++ C++;在阵列中放置对象
我正在尝试将对象放置在数组列表中,并弹出3个错误。我查看了论坛,发现有一个类似于我的论坛,但我认为它不适用于我的情况。 这是我的密码: 在test.cpp(主文件)中C++ C++;在阵列中放置对象,c++,visual-studio-2015,C++,Visual Studio 2015,我正在尝试将对象放置在数组列表中,并弹出3个错误。我查看了论坛,发现有一个类似于我的论坛,但我认为它不适用于我的情况。 这是我的密码: 在test.cpp(主文件)中 #包括 #包括“House.h” 使用名称空间std; 房屋阵列[2]; int main() { 字符串打印; 库博之家(“库博”,2); HouseArray[0]=Kubo; toPrint=HouseArray[0]。GetHouseName; 库特 如果要创建这样的数组,您需要一个默认构造函数:House-HouseAr
#包括
#包括“House.h”
使用名称空间std;
房屋阵列[2];
int main()
{
字符串打印;
库博之家(“库博”,2);
HouseArray[0]=Kubo;
toPrint=HouseArray[0]。GetHouseName;
库特
如果要创建这样的数组,您需要一个默认构造函数:House-HouseArray[2];
编译器需要知道如何创建一个空的House
,以便初始化初始数组
众议院(){
Name=“”;
健康=0;
}
要在类上调用函数,需要添加大括号:
toPrint=HouseArray[0].GetHouseName();
我怀疑上述措施也能解决这个问题
你想调用GetHouseName
成员函数吗?当你创建一个对象数组时,数组中的元素将被默认构造,你没有默认构造函数。默认构造函数中的a
和h
是什么?数组的元素是值初始化的,因为它有静态存储dur初始化(因为它是在命名空间范围内定义的)。将其作为局部变量可以解决问题。@acraig5075,抱歉,复制代码时忘记修复该部分,现已修复:它应该是一些有效的默认值std::string
已经有默认初始化,执行Name=“”;
#include <iostream>
#include "House.h"
using namespace std;
House HouseArray[2];
int main()
{
string toPrint;
House Kubo("Kubo", 2);
HouseArray[0] = Kubo;
toPrint = HouseArray[0].GetHouseName;
cout <<toPrint<< endl;
}
#include "House.h"
#include <iostream>
House::House(string a, int h)
{
Name = a;
Health = h;
}
void House::DamageHouse(int d) {
Health -= d;
cout << "Your " << Name << " has " << Health << " left."<<endl;
}
int House::GetHouseHealth() {
return Health;
}
string House::GetHouseName() {
string returning = Name;
return returning;
}
House::~House()
{
}
#include <string>
using namespace std;
class House
{
string Name;
int Health;
public:
House(string a, int h);
int GetHouseHealth();
void DamageHouse(int d);
string GetHouseName();
~House();
};