"Dodawanie" do litery inta

0

Mam obiekty o nazwie p z jakąś liczbą na końcu, mój problem polega na tym, że chce odczytać obiekt którego numer mam w incie, jak "dodać" do litery p tego inta od razu, w miejscu, w którym wyczytuje dane.

0

A w jakim języku chcesz to zrobić? I powiem ci, że na pierwszy rzut oka to jest jakaś karkołomna konstrukcja.

2

Brzmi to jak klasyczny problem XY: https://en.wikipedia.org/wiki/XY_problem

Powiedz co chcesz zrobić, nie jak, bo to nie ma sensu.

0

A możesz napisać coś więcej o problemie, jaki próbujesz rozwiązać? Skąd się wzięły klasy różniące się tylko numerkiem? Ja nie znam metody dynamicznego generowania nazwy klasy (nie znaczy, że jej nie ma).

0

Przykład mam obiekty p1, p2, p3. Chce wypisać inta numer, który ma każdy z obiektów, ale numer obiektu czyli czy to jest p1, p2, czy p3, mam zapisany w incie w. Gdybym wiedział jaki to numer zrobił bym to tak. cout<<p1::numer; lub cout<<p2::numer; albo cout<<p3::numer;, jednak gdy nie wiem chciał bym zrobić coś takiego, ale poprawnie cout<<p+int w::numer;

2

Czyli chcesz mieć po prostu tablicę?

0

A to są obiekty pokrewne? Dziedziczą po jakimś interfejsie, klasie abstrakcyjnej? C++ jest językiem statycznie typowane i wszystkie typy muszą być znane w momencie kompilacji.

1

Napisz jeszcze raz po polsku o co chodzi i Podaj przykład, co na wejściu (obiekty, nazwy obiektów?), co na wyjściu?

0

Jak masz tablice [p0, p1, p2, ... , pn]

I int X = Y i chcesz pY no to chyba arr[X] jest rozwiazaniem.. albo zle opisales

0

Preprocesor i stringify?

#define VAR_NUMBER(name) var_number(#name)

std::string var_number(std::string name) {
  return name.substr(1);
}

int main() {
  int p2, p1, p3;

  std::cout << VAR_NUMBER(p1) << "\n";
  std::cout << VAR_NUMBER(p2) << "\n";
  std::cout << VAR_NUMBER(p3) << "\n";
}

https://wandbox.org/permlink/Aq9TILjONdEIetif

Edit:
Jeżeli jednak obiekty tej samej klasy i tylko mają mieć kolejne numery:

class Counted {
 private:
  static int count;
  int _number;

 public:
  Counted() : _number(count++) {}

  int number() { return _number; }
};
int Counted::count = 0;

int main() {
  Counted p2, p1, p3;

  std::cout << p1.number() << "\n";
  std::cout << p2.number() << "\n";
  std::cout << p3.number() << "\n";
}

https://wandbox.org/permlink/icNGMhhcjDvcj0WQ

0

Przedmiot
{
int numer;
int liczba;
};

Przedmiot p1(567, 1);
Przedmiot p2(531, 4);
Przedmiot p3(431, 9);
cin>>w;

0

Jak najbardziej użyj tablicy. wtf

1
stivens napisał(a):

Jak masz tablice [p0, p1, p2, ... , pn]

I int X = Y i chcesz pY no to chyba arr[X] jest rozwiazaniem.. albo zle opisales

Tutaj jest rozwiazanie

2
kq napisał(a):

Brzmi to jak klasyczny problem XY: https://en.wikipedia.org/wiki/XY_problem

Powiedz co chcesz zrobić, nie jak, bo to nie ma sensu.

Popieram kq to jest problem XY i mało tego, nawet po tym jak kq zwrócił na to uwagę nadal odpowiadasz tak, że problem XY pozostaje.

Na razie zapomnij jak chcesz to zakodować.
Opisz co aplikacja ma robić z punktu widzenia użytkownika. Dopiero jak to opiszesz, możesz zacząć opisywać czemu wpadłeś na takie dziwne rozwiązanie.
Wtedy będziemy w stanie ocenić, czy twój pomysł ma sens. Jeśli ma to sens, to dostarczę rozwiązanie, ale na razie się wstrzymam bo jestem przekonany, że po prostu podchodzisz do problemu od złej strony,

0
Pawel Rozbejko napisał(a):

Przykład mam obiekty p1, p2, p3. Chce wypisać inta numer, który ma każdy z obiektów, ale numer obiektu czyli czy to jest p1, p2, czy p3, mam zapisany w incie w. Gdybym wiedział jaki to numer zrobił bym to tak. cout<<p1::numer; lub cout<<p2::numer; albo cout<<p3::numer;, jednak gdy nie wiem chciał bym zrobić coś takiego, ale poprawnie cout<<p+int w::numer;

ale tu żeś namieszał
czy tu chodzi ci o przeładowanie operatora +
?

1 użytkowników online, w tym zalogowanych: 0, gości: 1