Click here to Skip to main content
15,915,867 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
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??
GeneralRe: virtual inheritance and polymorphism! Pin
Emilio Garavaglia2-Aug-11 20:30
Emilio Garavaglia2-Aug-11 20:30 
GeneralRe: virtual inheritance and polymorphism! Pin
Dean Seo3-Aug-11 16:24
Dean Seo3-Aug-11 16:24 
QuestionHow to disable a checkbox created using MFCRibbonCheckBox? Pin
MeghaJoshi1-Aug-11 18:22
MeghaJoshi1-Aug-11 18:22 
AnswerRe: How to disable a checkbox created using MFCRibbonCheckBox? Pin
Dr.Walt Fair, PE1-Aug-11 18:51
professionalDr.Walt Fair, PE1-Aug-11 18:51 

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.