Click here to Skip to main content
15,907,326 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionHow to make member functions of an application accessible by a DLL? Pin
Arris742-Aug-11 10:00
Arris742-Aug-11 10:00 
AnswerRe: How to make member functions of an application accessible by a DLL? Pin
Chris Losinger2-Aug-11 10:15
professionalChris Losinger2-Aug-11 10:15 
GeneralRe: How to make member functions of an application accessible by a DLL? Pin
Stephen Hewitt2-Aug-11 21:24
Stephen Hewitt2-Aug-11 21:24 
GeneralRe: How to make member functions of an application accessible by a DLL? Pin
Chris Losinger3-Aug-11 0:50
professionalChris Losinger3-Aug-11 0:50 
AnswerRe: How to make member functions of an application accessible by a DLL? Pin
Albert Holguin2-Aug-11 12:15
professionalAlbert Holguin2-Aug-11 12:15 
GeneralRe: How to make member functions of an application accessible by a DLL? Pin
Arris742-Aug-11 20:36
Arris742-Aug-11 20:36 
GeneralRe: How to make member functions of an application accessible by a DLL? Pin
Albert Holguin3-Aug-11 5:07
professionalAlbert Holguin3-Aug-11 5:07 
AnswerRe: How to make member functions of an application accessible by a DLL? Pin
Richard MacCutchan2-Aug-11 22:46
mveRichard MacCutchan2-Aug-11 22:46 
AnswerRe: How to make member functions of an application accessible by a DLL? Pin
MANISH RASTOGI4-Aug-11 2:51
MANISH RASTOGI4-Aug-11 2:51 
Question/clr:pure question Pin
WebDev.ChrisG2-Aug-11 5:01
WebDev.ChrisG2-Aug-11 5:01 
AnswerRe: /clr:pure question Pin
Rolf Kristensen2-Aug-11 12:47
Rolf Kristensen2-Aug-11 12:47 
GeneralRe: /clr:pure question Pin
WebDev.ChrisG4-Aug-11 11:22
WebDev.ChrisG4-Aug-11 11:22 
QuestionIs it possible to use a different theme only for my app Pin
Cold_Fearing_Bird2-Aug-11 0:13
Cold_Fearing_Bird2-Aug-11 0:13 
AnswerRe: Is it possible to use a different theme only for my app Pin
Nemanja Trifunovic2-Aug-11 4:19
Nemanja Trifunovic2-Aug-11 4:19 
SuggestionRe: Is it possible to use a different theme only for my app PinPopular
Charles Oppermann2-Aug-11 19:54
Charles Oppermann2-Aug-11 19:54 
Questionvirtual inheritance and polymorphism! [modified] Pin
Dean Seo1-Aug-11 20:03
Dean Seo1-Aug-11 20:03 
AnswerRe: virtual inheritance and polymorphism! Pin
Peter_in_27801-Aug-11 20:36
professionalPeter_in_27801-Aug-11 20:36 
GeneralRe: virtual inheritance and polymorphism! Pin
Dean Seo3-Aug-11 16:20
Dean Seo3-Aug-11 16:20 
AnswerRe: virtual inheritance and polymorphism! Pin
QuickDeveloper1-Aug-11 21:35
QuickDeveloper1-Aug-11 21:35 
GeneralRe: virtual inheritance and polymorphism! Pin
Emilio Garavaglia2-Aug-11 20:21
Emilio Garavaglia2-Aug-11 20:21 
GeneralRe: virtual inheritance and polymorphism! Pin
Dean Seo3-Aug-11 16:23
Dean Seo3-Aug-11 16:23 
GeneralRe: virtual inheritance and polymorphism! Pin
Dean Seo3-Aug-11 16:23
Dean Seo3-Aug-11 16:23 
AnswerRe: virtual inheritance and polymorphism! Pin
Chandrasekharan P1-Aug-11 22:03
Chandrasekharan P1-Aug-11 22:03 
GeneralRe: virtual inheritance and polymorphism! Pin
Dean Seo3-Aug-11 16:23
Dean Seo3-Aug-11 16:23 
AnswerRe: virtual inheritance and polymorphism! Pin
Resmi Anna1-Aug-11 23:04
Resmi Anna1-Aug-11 23:04 
Peter has already given a partial answer to your question.
just consider the below example
class A
{
public:
	A()
	{
		cout << "A::A\n";
	}
};
class B : public A
{
public:
	B()
	{
		cout << "B::B\n";
	}
};
class C : public B
{
public:
	C()
	{
		cout << "C::C\n";
	}
};
int main()
{
	A* a = new C();
	return 0;
}

What will be the output
A::A
B::B
C::C
right??
means the order of object creation is like A->B->C
and C objects reference is being put into A's pointer
In your code
There are two object creation order

like A->B->D
and
like A->C->D
Here compler would be confused which D's reference comes to A's pointer???
That is why there is compilation error. c++ provides us something through which we can overcome this problem. Thats the virtual class.
You might have heard of diamond problem in c++. This what happens here.
you can change you code like below.
class A{};
class B : virtual public A{};
class C : virtual public A{};
class D : public B, public C{};
int _tmain(int argc, _TCHAR* argv[])
{	
	A* a = new D();   // No error!
} 

note the key word virtual.
Now the order of object creation will be like A->B->C->D. you can print some thing in constructure of each class and can see this.
In the second code snippet
class A{};
class B : public A{};
class C : public A{};
class D : public B, public C{};
int _tmain(int argc, _TCHAR* argv[])
{	
	B* b = new D();  // works! ..what?
}

There is no confusion for the compiler even though there are 2 object creation order.
One like A->B->D and another like A->C->D. But you have clearly mentioned that D objects refernce goes to B's pointer.
So complier will take A->B->D order and put this into B's pointer. But C object also will be created.

Now it is clear that why the third code snippet cause an error.
B's pointer stores a reference of D object being created in the order A->B->D. There is no Func() function on the way. Is there??

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.