KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I've got a class that has a couple of data members of class type. I don't want the constructors for these members to be called when declared, so I'm trying to hang onto a pointer to the object explicitly. I thought maybe I could do the following, where the constructor is called immediately when initializing the data members: class MyClass { public: MyClass(int n); private: AnotherClass another(100); // Construct AnotherClass right away! }; But I want the MyClass constructor to call the AnotherClass constructor. Here's what my code looks like: BigMommaClass.h #include "ThingOne.h" #include "ThingTwo.h" class BigMommaClass { public: BigMommaClass(int numba1, int numba2); private: ThingOne* ThingOne; ThingTwo* ThingTwo; }; BigMommaClass.cpp #include "BigMommaClass.h" BigMommaClass::BigMommaClass(int numba1, int numba2) { this->ThingOne = ThingOne(100); this->ThingTwo = ThingTwo(numba1, numba2); } Here's the error I'm getting when I try to compile: g++ -Wall -c -Iclasses -o objects/BigMommaClass.o classes/BigMommaClass.cpp In file included from classes/BigMommaClass.cpp:1:0: classes/BigMommaClass.h:12:8: error: declaration of âThingTwo* BigMommaClass::ThingTwoâ classes/ThingTwo.h:1:11: error: changes meaning of âThingTwoâ from âclass ThingTwoâ classes/BigMommaClass.cpp: In constructor âBigMommaClass::BigMommaClass(int, int)â: classes/BigMommaClass.cpp:4:30: error: cannot convert âThingOneâ to âThingOne*â in assignment classes/BigMommaClass.cpp:5:37: error: â((BigMommaClass*)this)->BigMommaClass::ThingTwoâ cannot be used as a function make: *** [BigMommaClass.o] Error 1 Am I using the right approach, but the wrong syntax? Or should I be co
Tags (comma-separated)
Save Edits
Cancel