typedef nie działa/C++

Odpowiedz Nowy wątek
2014-12-29 23:16
Czarny Krawiec
0

Witam, mam problem. Gdy używam typedef to wywala mi bląd:
== Build: Debug in typedef (compiler: GNU GCC Compiler) ===

D:\Dokumenty\programy\typedef\main.cpp|4|error: typedef 'Age' is initialized (use decltype instead)|
D:\Dokumenty\programy\typedef\main.cpp||In function 'int main()':|
D:\Dokumenty\programy\typedef\main.cpp|8|error: 'Age' was not declared in this scope|
D:\Dokumenty\programy\typedef\main.cpp|8|error: expected ';' before 'A'|
== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===

Cały kod:

#include <iostream>
 
using namespace std;
typedef int Age=3;
 
int main()
{
    Age A=3;
    return 0;
}
 

Pozostało 580 znaków

2014-12-29 23:29
2
typedef int Age;

lub using Age = int;



Nie ma tam miejsca na żadne wartości (=3).
edytowany 3x, ostatnio: spartanPAGE, 2014-12-29 23:29

Pozostało 580 znaków

2014-12-29 23:33
0

http://stackoverflow.com/ques[...]ween-typedef-and-using-in-c11

sugeruję używania using zamiast typedef, a czemu? eee bo jest bardziej na czasie

lepiej wygląda w dużych skupiskach, nazwy są na tym samym poziomie; + szablonowe aliasy masz tylko z using - spartanPAGE 2014-12-29 23:34

Pozostało 580 znaków

2014-12-29 23:34
Czarny Krawiec
0

Czyli jeśli dobrze rozumiem, to nie można przy typedef ustalać z góry wartości? Dopiero przy przypisaniu drugiej nazwy?

Pozostało 580 znaków

2014-12-29 23:36
0

nie to jest tylko alias dla typu

Pozostało 580 znaków

2014-12-29 23:42
Czarny Krawiec
0

Ale typ aliasom można przypisywać wartości, a tam gdzie jest typedef nie można.

Pozostało 580 znaków

2014-12-29 23:43
0
Czarny Krawiec napisał(a):

Ale typ aliasom można przypisywać wartości, a tam gdzie jest typedef nie można.

Inaczej wygląda, wynik daje taki sam.

Pozostało 580 znaków

2014-12-29 23:44
Czarny Krawiec
0

Dobra, chyba zrozumiałem. Dzięki. :D

Pozostało 580 znaków

2014-12-30 01:41
Zimny Kot
0

To może ja się dołączę z pytaniem, bo dot. tego samego: czy da się zrobić tak, by w pliku głównym (main) zrobić coś w stylu: using real = float; a w innych plikach się do tego "jakoś" odwoływać tzn. bez ponownego tworzenia aliasu? Chodzi o to, żeby w razie konieczności zmienić z float na double w jednym pliku a nie w każdym utworzonym.
Próbowałem dać extern real; ale wywala mi warninga, że...

warning C4091: 'extern ' : ignored on left of 'float' when no variable is declared

Z góry dzięki za pomoc!

Pozostało 580 znaków

2014-12-30 02:23
0

Wrzuć to do nagłówka. (.h/.hpp)

Pozostało 580 znaków

2014-12-30 03:15
Zimny Kot
0
spartanPAGE napisał(a):

Wrzuć to do nagłówka. (.h/.hpp)

Ale "to" tzn. using real = float; czy extern real;? Co mam później wpisywać w pozostałych plikach .h/.cpp?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0