W języku C++ niestety bezpośrednio nie dostaniesz nazwy zmiennej. Możesz jednak to obejść, tworząc dodatkową składową np. obiekt klasy string, do którego zapiszesz nazwę obiektu. Szczerze nie polecam takiej praktyki, ale jeśli z jakiegoś powodu jest Ci to potrzebne, to:
#include <iostream>
#include <string>
class MyObject {
private:
std::string objectName;
int value;
public:
MyObject(std::string objectName, int value){
this->objectName = objectName;
this->value = value;
}
void show(){
std::cout << objectName << " ma wartosc: " << value << std::endl;
}
};
int main(void){
MyObject obiekt1("obiekt1", 25);
obiekt1.show();
}
Jeśli jednak potrzebny jest Ci tylko licznik obiektów, to możesz stworzyć statyczną składową, która będzie przechowywać liczbę utworzonych obiektów np.
#include <iostream>
#include <string>
class MyObject {
private:
static int objectCounter;
int value;
public:
MyObject(int value){
this->value = value;
objectCounter++;
}
void show(){
std::cout << "Obiekt " << objectCounter << " ma wartosc: " << value << std::endl;
}
};
int MyObject::objectCounter = 0;
int main(void){
MyObject obiekt1(25);
obiekt1.show();
MyObject obiekt2(365);
obiekt2.show();
}
Pozdrawiam! :)