Avatar billede sprox Nybegynder
16. oktober 2002 - 15:23 Der er 5 kommentarer og
4 løsninger

fra delphi til c++

Jeg har arbejdet med delphi de sidste 2 år men har nu besluttet mig at lære c++

1. Hvornår bruger man -> og hvornår bruger man . ? (Memo1->Lines)

2. Pointers ? Globale variabler ?

3. Store og småbogstaver.. ka man ikke få editoren(borland c++ builder 6 trial) til at gøre det automatisk?

4. er der nogle gode guides fra delphi til c++?

5. jeg har hørt der skulle være en masse fordele ved c++ ... men har aldrig hørt nogen konkret.. hvilke fordele og ulemper er der? :D

40 points til hvert spørgsmål
Avatar billede arne_v Ekspert
16. oktober 2002 - 15:27 #1
1) Hvis A er en struct og X er et felt bruger du A.X, men hvis
    A er en pointer til struct og X er et felt bruger du A->X.
Avatar billede arne_v Ekspert
16. oktober 2002 - 15:28 #2
3) Nej det tror jeg ikke. FooBar of fOObAR er jo to forskellige
    navne, så det vill eblive kaos, hvis editorem forsøgte at lave
    om på, hvad du skrev.
Avatar billede soreno Praktikant
16. oktober 2002 - 15:31 #3
5> næsten alle api'er har du direkte mulighed for at tilgå via c/c++ - der skal først laves lidt fiksfakserier for at få det til at spille med delphi. Desuden er du ikke låst til borlands compilere hvis du benytter c/c++
Avatar billede arne_v Ekspert
16. oktober 2002 - 15:31 #4
5) C++ er et virkeligt kraftfuldt sprog. Du kan lave OO programmering
    på højeste niveau (GoF patterns etc.), men du kan stadig lave
    virkeligt effektivt low-level kode.

    Du har imidlertid også i bedste/værste C tradition en del muligheder
    for at skyde dig selv i foden. Sprog som Java og C# har færre
    muligheder, men beskytter dig også bedre mod dine egne fejl.
Avatar billede killer_bee Nybegynder
16. oktober 2002 - 15:31 #5
til 1.
Hvis du har feks.
class MyClass{
int myVariable;
}
Når du laver en object af denne class sådan:

MyClass Obj;

så bruger du .( Obj.myVariable) for at accesse variablen
Når du laver en object af denne class sådan:

MyClass *Obj;(pointer)

så bruger du ->( Obj->myVariable) for at accesse variablen
Avatar billede killer_bee Nybegynder
16. oktober 2002 - 15:31 #6
lol .. var FOR langsom.. hehe
Avatar billede arne_v Ekspert
16. oktober 2002 - 15:33 #7
2)  Pointere bruger du til dynamiske objekter ligesom i delphi
    og i nogen tilfælde ved brug af arrays.

    Globale variable vil du vel bruge ligesom i Delphi (jeg er ikke
    Delphi expert).
Avatar billede soreno Praktikant
16. oktober 2002 - 15:35 #8
3> du skal bare være konsistent i din navngivning af klasser og variabler. jeg plejer at give klassenavne Stort begyndelsesbogstav for hver logiske inddeling, eks MinKlasseSomHarEtBestemtFormål
variabler starter jeg med lille bogstav men ellers efter samme princip som klasser, eks:
MinKlasseSomHarEtBestemtFormål minKlasseSomHarEtBestemtFormål;
Avatar billede dittmer Nybegynder
16. oktober 2002 - 16:13 #9
1) er besvaret af de andre...

2) Pointere er bare adresser på en datastruktur.

  Obj *ptrObj

kan indeholde på et Obj-objekt. Du får fat i objektet selv ved at de-referere pointeren, hvilket ser således ud:

  ptrObj->...

hvor de tre prikker står for f.eks. den metode, du ønsker at kalde.

Globale variabler er ikke "så pæne" i C++. Muligheden for at bruge dem kommer nok fra slægtskabet med C, men det er pænere at bruge statiske variabler i objekterne. Dermed kan du også regulere adgangen til dem på en fornuftig måde.

3) er vist osse besvaret.

4) Njah, det er jeg ikke klar over, men jeg kender da nogle udmærkede bøger til at komme igang med C++. Og når man først er i gang bør man efter min mening investere i Bjarne Stoustrups C++-bog i tredje udgave (vigtigt). En godt tilbud på anden udgave er dårligt i forhold til at give fuld pris for tredje udgave...

5) Der er da nogle udmærkede grunde til at bruge C++. De fleste af dem er de samme som du hører om Delphi - måske bortset fra at C++ nok er lidt lettere at flytte mellem platforme (på source-niveau). C++ har pointere, hvilket giver fuld kontrol over lager. Til gengæld er det osse et af de steder, hvor der laves flest fejl, hvis ikke man er 110% på opgaven. C++ har operator overloading (man kan f.eks. definere +-operatoren på en hjemmebygget Matrix-klasse), hvilket betyder, at man kan skrive matrix-regning som

  try {
    matrixC = matrixA + matrixB;
  }
  catch (...) {
  }

hvor exceptions håndterer forkerte dimensioner etc. Ulempen er, at man ikke på forhånd ved *helt sikkert*, hvad en +-operator indeholder, og det er igen et af de steder, hvor der ofte laves fejl. Begge de nævne ting mangler f.eks. i Java med disse begrundelser, men uha, hvor jeg savner operator overloading i Java...  ;o)

Mvh
Søren
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