Pole klasy będące obiektem innej klasy

Pole klasy będące obiektem innej klasy
OJ
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
class u
{
    string nazwa;
    innaklasa obiekt(100);

public:
        void pokaz() {cout << obiekt.liczba <<endl;}
};

Witam, jak zadeklarować obiekt jakieś innej klasy w klasie ? Próbowałem tak jak wyżej ale nie działa. Da się jakoś bez wskaźnika ?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1
Kopiuj
class u
{
    string nazwa;
    innaklasa obiekt;
 
public:
        u():obiekt(1000){}
        void pokaz() {cout << obiekt.liczba <<endl;}
};

Pytanie jest głupie bo przecież string to też klasa...

OJ
  • Rejestracja: dni
  • Ostatnio: dni
0

A jak ma wyglądać konstruktor tej innejklasy żeby działało ? Bo tak wywala błąd:
class innaklasa
{
string nazwa;
public:
int liczba;

innaklasa(int liczba)
{ this->liczba = liczba;
}
};

DR
  • Rejestracja: dni
  • Ostatnio: dni
0

Niby jaki błąd?
Może brakuje Ci tego:

Kopiuj
#include <string>

using namespace std;
OJ
  • Rejestracja: dni
  • Ostatnio: dni
0

error: no matching function for call to 'innaklasa::innaklasa()'|

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Pokaż cały kod który próbujesz skompilować.

DR
  • Rejestracja: dni
  • Ostatnio: dni
0

Zadeklarowałeś konstruktor z parametrem innaklasa(int), a próbujesz wywołać domyślny innaklasa().

OJ
  • Rejestracja: dni
  • Ostatnio: dni
0

ok dzięki, działa. Miałem inny głupi błąd przez który nie chciało się skompilować.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.