Gå til innhold

Kan jeg bruke samme variabel navn flere ganger?


Anbefalte innlegg

Kan jeg bruke num1 og num2 flere ganger?

export double add(double num1, double num2)
{
  return (double)num1+num2;
}

export double min(double num1, double num2)
{
  return (double)num1-num2;

Hvis det går, er det noen argumenter mot å bruke det?

Endret av kake_fisk
Lenke til kommentar
Videoannonse
Annonse
Kan jeg bruke num1 og num2 flere ganger?

export double add(double num1, double num2)
{
  return (double)num1+num2;
}

export double min(double numb1, double numb2)
{
  return (double)num1-num2;

Hvis det går, er det noen argumenter mot å bruke det?

Ja, du kan(siden de har forskjellig scope).

 

PS. Det er ikke noe poeng i å bruke casting. num1 er allerede double.

Lenke til kommentar

Nei, faktisk vil jeg oppfordre deg til å bruke samme variabelnavn flerer ganger, ihvertfall så lenge variabelen har samme funksjon.

Det gjør koden mer konsekvent og enklere for andre å forstå.

 

Men du burde ha intelligente navn som forteller litt om hva variabelen brukes til.

Lenke til kommentar

Så jeg burde bruke num1, num2 i hver code block?

Men siden det er en dll, det vil vell ikke forandre på de andre da?

 

Foresten, fikk error med minus...

export double min(double numb1, double numb2)

16 G:\gm\gm7\Examples\HypotenuseDLL\MathDLL.cpp expected unqualified-id before "double" 
16 G:\gm\gm7\Examples\HypotenuseDLL\MathDLL.cpp expected `)' before "double"

Lenke til kommentar

okay, med den casting greia...

skal jeg fjerne double eller skal jeg fjerne parantes?

 

Edit: jeg har 2 krøllparanteser..

//MathDLL.cpp
#include "dll.h"
#include <windows.h>
#include <cmath>

export double hyp(double number1, double number2)
{
  return sqrt(number1*number1+number2*number2);
}

export double add(double num1, double num2)
{
  return (double)num1+num2;
}

export double min(double numb1, double numb2)
{
  return (double)numb1-numb2;
}

Endret av kake_fisk
Lenke til kommentar

Casting omgjør en type til en annen(der det gir mening):

(ny_type)variabel_av_gammel_type

 

f.eks. int(heltall) til double(flyttalll):

int x;

double d;

d = (double)x;

Dette er eksplisitt casting.

 

Hvis man skirver

d = x;

vil det bli gjort et implisitt cast.

 

Noen typer går ikke ann å caste, ettersom det ikke gir mening, f.eks. string til int:

string s = "programmeringergøy"

int x = (int)s;

Dette gir en feil under kompilering.

 

Det du gjør i koden din er å konvertere(caste) fra double til double, som jo ikke er nødvendig.

 

Det holder å skrive:

export double min(double numb1, double numb2)

{

return numb1-numb2;

}

 

Du kan også droppe export. export har bare med templates å gjøre. Dette keywordet er lite brukt, og mange compilere har ikke implementert det.

 

Tips: Ikke gjør noe uten å vite hvorfor.

Endret av JeffK
Lenke til kommentar

Bare kall alle parameterne f.eks. num1 og num2 istedet for å gi dem forskjellige navn.

 

Men når man setter en datatype i parantes, konverterer man verdien til den datatypen; men siden du allerede kun bruker double her, så er det ikke nødvendig, så fjern hele parantesen.

 

return num1 - num2;

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...