Avatar billede Lasse Novice
07. oktober 2004 - 18:57 Der er 7 kommentarer og
1 løsning

C++'s ækvivalent til c#¨s is operator?

Jeg skal gerne vide om en instans af klassen c1 er af interface typen Ic1. Hvordan goeres dette i c++.net?
Avatar billede arne_v Ekspert
07. oktober 2004 - 19:26 #1
Det mener jeg ikke at du kan i C++.
Avatar billede arne_v Ekspert
07. oktober 2004 - 19:27 #2
Men prøv og byg & kør det her med din compiler og se om du synes at det kan bruges
til noget:

#include <iostream>
#include <string>
#include <typeinfo>

using namespace std;

class MyClass
{
};

class MySubClass : public MyClass
{
};

int main()
{
  int i = 123;
  string s = "abc";
  MyClass *mc = new MyClass();
  MySubClass *msc = new MySubClass();
  MyClass *mcmsc = new MySubClass();
  cout << typeid(i).name() << endl;
  cout << typeid(s).name() << endl;
  cout << typeid(mc).name() << endl;
  cout << typeid(msc).name() << endl;
  cout << typeid(mcmsc).name() << endl;
  cout << typeid(*mc).name() << endl;
  cout << typeid(*msc).name() << endl;
  cout << typeid(*mcmsc).name() << endl;
  return 0;
}
Avatar billede Lasse Novice
07. oktober 2004 - 19:52 #3
Ok, jeg tror ikke jeg har forklaret ordentligt... Jeg har en instans af en managed class c1 og jeg har et managed interface Ic1... Indenfra c++.net vil jeg nu gerne vide om c1 er af typen Ic1.

C#'s aekvivalent:
c1 is Ic1

c++:

???
Avatar billede arne_v Ekspert
07. oktober 2004 - 19:58 #4
Ah. Managed.

Så er der muligheder !
Avatar billede arne_v Ekspert
07. oktober 2004 - 19:59 #5
Læs f.eks. http://msdn.microsoft.com/msdnmag/issues/02/02/managedc/default.aspx
afsnittet "An Is Operator for Managed C++".
Avatar billede arne_v Ekspert
07. oktober 2004 - 20:00 #6
Ikke helt så elegant som i C# men ...
Avatar billede Lasse Novice
07. oktober 2004 - 20:13 #7
Excelent... jeg takker. Hvis du er soed at svare, saa er pointene DINE
Avatar billede arne_v Ekspert
07. oktober 2004 - 20:27 #8
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester