Tworznie obiektu i problem z konstruktorem (constant)

0

Witam.
Mój kod w uproszczeniu (aby pokazać o co dokładnie mi chodzi) składa się z dwóch klas.

#include <iostream>
#include <string>
using namespace std;

class ClassA{
public:
int zmienna;
string name;
    ClassA(){
        zmienna=4;
        cin>>name;
    }
    ClassA(int a,string n){
        zmienna=a;
        name=n;
    }

};
class ClassC{
public:
    ClassA objA(2,"name");
    void wypisz(){
        cout<<objA.zmienna<<objA.name;
    }
};
int main() {
    ClassC obj;
    obj.wypisz();
    return 0;
} 

W klasie ClassC tworzę obiekt klasyA.
Wszystko działa jeśli tworzę go przez domyślny konstruktor (ClassA objA), jednak jeśli chcę przekazać parametr (tak jak w kodzie powyżej) dostaję błąd error C2059: syntax error : 'constant'
Jak powinien wyglądać ten kod?

0

Coś w ten deseń.

 class ClassC{
public:
        ClassA objA;
        ClassC(int z=2, string s="name"): objA(z,s) { }
        void wypisz(){
                cout<<objA.zmienna<<objA.name;
        }
};
int main() {
        ClassC obj;
        obj.wypisz();
        return 0;
}
1

o_O a w jakim języku ten kod wyglądałby tak jak to napisałeś? WTF?

class ClassC{
private:
  ClassA objA;
public:
        ClassC():objA(2,"name"){}
        void wypisz(){
                cout<<objA.zmienna<<objA.name;
        }
};
1
mimol napisał(a)

class ClassC{
public:
ClassA objA(2,"name");
void wypisz(){
cout<<objA.zmienna<<objA.name;
}
};

a nie powinno być tak:

class ClassC{
public:
    ClassA objA ;

        ClassC():
            objA(2,"name")
        {
        }
    void wypisz(){
        cout<<objA.zmienna<<objA.name;
    }
};

??

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