typedef nie działa/C++

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;
}
 
2
typedef int Age;

lub using Age = int;


Nie ma tam miejsca na żadne wartości (=3).
0

http://stackoverflow.com/questions/10747810/what-is-the-difference-between-typedef-and-using-in-c11

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

0

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

0

nie to jest tylko alias dla typu

0

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

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.

0

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

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!

0

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

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?

2

zrób nagłówek (hpp) z definicjami dla aplikacji i umieść tam using real = float; i includuj go tam gdzie będziesz potrzebował; będziesz chciał zmienić na double to będzie to zmiana tylko w 1 miesjcu; bez extern

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