创建了一个名为“ Fahrzeug”的类,其中包含成员变量 p_iID 和 p_iMaxID 。现在,主要在我中创建一些类型为“ Fahrzeug”的对象。目标是每个创建的对象都有其唯一的ID,我试图通过递增来实现 构造函数中的 p_iMaxID 。问题,它没有增加。打开任何帮助:)
代码:
Fahrzeug.h:
#pragma once
#include <iostream>
#include <string>
class Fahrzeug
{
public:
Fahrzeug();
Fahrzeug(std::string);
~Fahrzeug();
private:
std::string p_sName;
int p_iID;
int p_iMaxID = 0;
//Hochzählende Fahrzeugnummer
};
Fahrzeug.cpp:
#include "Fahrzeug.h"
using namespace std;
Fahrzeug::Fahrzeug()
{
p_sName = " ";
p_iID = p_iMaxID + 1;
cout << "ID des erzeugten Objects: " << p_iID << ", Name des erzeugten Objects: (NIX)" << p_sName << endl;
}
Fahrzeug::Fahrzeug(std::string autoName)
{
p_iID = p_iMaxID + 1;
p_sName = autoName;
cout << "ID des erzeugten Objects: " << p_iID << ", Name des erzeugten Objects: " << p_sName << endl;
}
Fahrzeug::~Fahrzeug()
{
cout << "ID des gelöschten Objects: " << p_iID << ", Name des gelöschten Objects: " << p_sName << endl;
}
main.cpp:
#include "Fahrzeug.h"
using namespace std;
void vAufgabe_1()
{
Fahrzeug auto1("Auto1");
Fahrzeug auto2("Auto2");
string sNameInput1, sNameInput2;
cout << "Name fuer Auto3: " << endl;
cin >> sNameInput1;
Fahrzeug *auto3 = new Fahrzeug(sNameInput1);
cout << "Name fuer auto4: " << endl;
cin >> sNameInput2;
Fahrzeug *auto4 = new Fahrzeug(sNameInput2);
delete auto3;
delete auto4;
}
int main()
{
vAufgabe_1();
return 0;
}
答案 0 :(得分:3)
您需要将变量设为静态:
static int p_iMaxID = 0;
,以便您的所有对象共享p_iMaxID
。您还需要在某处增加它
p_iMaxID++;
答案 1 :(得分:2)
有2个不起作用的原因