Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

przerobienie z c na c++

Ostatnio zmodyfikowano 2010-12-18 11:49
Autor Wiadomość
malan
» 2010-12-16 17:57:28
@czasas:
%d i %s jest z jezyka c? ma jakies odpowiedniki w c++ ?
printf, scanf - zobacz sam :)
P-25229
pekfos
» 2010-12-16 18:26:30
CRT się nie zmieniło (poza namespace) a tym bardziej va_arg.(w sumie to va_list nie ma z tym dużo wspólnego bo mówimy o formatowaniu. va_arg wymaga typu jako argumentu a nie jego reprezentacji w cstringu formatującym)
P-25231
Tymek
» 2010-12-18 11:35:43
C/C++
#include <iostream>
#include <string>
using namespace std; // nie lepiej używać using namespace std?

int main()
{
    string word;
   
    cout << "Podaj slowo: ";
    cin >> word;
   
    cout << "Dlugosc slowa: " << word.size();
   
    cin.sync();
    cin.get();
    return 0;
   
    system( "pause" );
}

Po co ciągle używać std?
P-25274
pekfos
» 2010-12-18 11:49:42
żeby ciągle używać na początku kodu a nie ciągle używać w całym kodzie.
poza tym to kod w C będzie kompilował się pod C++, nie trzeba nic przerabiać.
mogą tylko być warningi w związku z silniejszą typizacją języka C++
P-25275
Elaine
» 2010-12-18 11:49:42
Pewno dlatego (http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.5):
People don't like typing std:: over and over, and they discover that using namespace std lets the compiler see any std name, even if unqualified. The fly in that ointment is that it lets the compiler see any std name, even the ones you didn't think about. In other words, it can create name conflicts and ambiguities.

For example, suppose your code is counting things and you happen to use a variable or function named count. But the std library also uses the name count (it's one of the std algorithms), which could cause ambiguities.

Look, the whole point of namespaces is to prevent namespace collisions between two independently developed piles of code. The using-directive (that's the technical name for using namespace XYZ) effectively dumps one namespace into another, which can subvert that goal. The using-directive exists for legacy C++ code and to ease the transition to namespaces, but you probably shouldn't use it on a regular basis, at least not in your new C++ code.

poza tym to kod w C będzie kompilował się pod C++, nie trzeba nic przerabiać.
Nie każdy. Pomyśl o takich rzeczach, jak niejawna konwersja między dowolnymi typami wskaźnikowymi (kompilator C najwyżej rzuci ostrzeżeniem, kompilator C++ natomiast błędem), nowych słowach kluczowych w C++, implicit int (tylko jeśli chodzi o ANSI C, w C99 już tego nie ma), kilku nowych featurach C99, których w C++ nie ma (na przykład restrict czy VLA) itd...
P-25276
1 « 2 »
Poprzednia strona Strona 2 z 2