Hinweise zu besonderen Eigenschaften von Microsoft (R) Visual C++ 6.0 im Rahmen der Lehre des Programmierens mit C++. (Fehler, Bug, Bugs, Problem, Probleme,), Lektion, Seite 721254
https://www.purl.org/stefan_ram/pub/msvc_v6d0eigenschaften_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

Besondere Eigenschaften von Microsoft (R) Visual C++ 6.0

Ergebnis der Funktion "main"

Nach der Norm "ISO/IEC 14882" wird bei der Definition der Funktion "main" als Ergebnis der Wert "0" angenommen, wenn kein Ergebnis durch einer Rückgabeanweisung (mit dem Schlüsselwort "return") festgelegt wird. Damit ist es also korrekt, das "return 0;" am Ende der Definition der Funktion "main" wegzulassen. Allerdings kennt Microsoft (R) Visual C++ 6.0  diese Festlegung noch nicht und erzeugt eine Warnung.

main.cpp
int main(){}

Meldungen
main.cpp(1) : warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen

Zur Vermeidung der Warnung kann die Rückgabeanweisung natürlich einfach ausgeschrieben werden.

main1.cpp
int main(){ return 0; }

Namensräume

Die Funktionen der Kopfdatei "cctype" sind in C++  nach der Norm "ISO/IEC 14882" im Namensraum "std". Dementsprechend sollte man in C++ -Programmen richtigerweise "std::isalpha", "std::isalnum" u.s.w. verwenden.

Doch in VC++ 6.0  wird dies nicht so umgesetzt, so daß diese Funktionen dort nicht im Namensraum "std" sind.

Zur Umgehung dieser Abweichung kann man statt dessen die unbeschränkten Namen "isalpha", "isalnum" u.s.w. verwenden.

Initialisierungen

Von VC++ 6.0  wird eine mit runden Klammern geschriebene Initialisierung nicht immer verstanden. Dann ist ersatzweise die Schreibweise mit dem Gleichheitszeichen zu verwenden.

init.cpp
int main() 
{ int v( 2 ); // Variablendefinition und Initialisierung 
// int & r( v ); // Referenzdefinition wird nicht verstanden 
int & r = v; // Diese Schreibweise wird verstanden 
}

Operatorüberladungen

In dem folgenden Programm wird der Operator "+" für den Datentyp "zustand" definiert. Dieser wird dann aber doch nicht richtig angewendet.

operator.cpp
enum zustand { N };
zustand operator+( const zustand & l, int const i ) 
{ return static_cast<zustand>( 0 ); }
int main() { zustand x( N );  
x = x + 1;  
}

Diagnosen
operator.cpp(5) : error C2440: '=' : 'int' kann nicht in 'enum zustand' konvertiert werden  
Konvertierung in einen Aufzaehlungstypen erfordert explizite Typumwandlung (static_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat)

Bereich von Bezeichnern

Der Gültigkeitsbereich in der Anweisung for-init-statement  einer for-Anweisung deklarierter Bezeichner umfaßt nur die for-Anweisung. Daher ist das folgende Programm korrekt: Für die for-Anweisung wird ein Bezeichner "i" definiert, der den weiter außen liegenden Bezeichner "i" überdeckt. Doch das wird von Microsoft (R) Visual C++ 6.0  so nicht akzeptiert.

for.cpp
#include <iostream> 
#include <ostream>
int main() 
{ int i = -22; 
for( int i = 0; i < 10; ++i )std::cout << i << '\n';  
std::cout << i << '\n'; }

operator.cpp
for.cpp(5) : error C2374: 'i' : Neudefinition; Mehrfachinitialisierung 
for.cpp(4) : Siehe Deklaration von 'i'

Zur Umgehung kann die for-Anweisung in einen Block geschrieben werden.

for1.cpp
#include <iostream> 
#include <ostream>
int main() 
{ int i = -22; 
{ for( int i = 0; i < 10; ++i )std::cout << i << '\n'; } 
std::cout << i << '\n'; }

Microsoft (R) Visual C++ 6.0  wurde vor der Fertigstellung des Sprachstandards von 1998 veröffentlicht. Als Microsoft (R) Visual C++ 6.0  1997 implementiert wurde, hieß es im damaligen Entwurf für den Sprachstandard, Schleifenvariablen sollten  im äußeren Bereich sichtbar sein. Vor der Veröffentlichung des Sprachstandards wurde diese Regel dann verändert.

Die Funktion "std::getline"

Die Funktion "std::getline" kann verwendet werden, um eine Zeile einzulesen. Das folgende Beispielprogramm verlangt aber, wenn es mit Microsoft (R) Visual C++ 6.0  erzeugt wurde, daß der Bediener am Ende dieser Zeile zweimal  die Eingabtaste betätigt, obwohl einfaches  Betätigen ausreichen sollte.

getline.c
#include <iostream> 
#include <ostream> 
#include <istream> 
#include <string>
int main()  
{ std::string str; 
std::getline( std::cin, str );  
std::cout << str << '\n'; }

Konsole

 
4

Bedingung mit type-specifier  "const"

Das folgende Programm wird von Microsoft (R) Visual C++ 6.0  erst akzeptiert, nachdem der type-specifier  "const" entfernt wurde. Für eine condition  ist jedoch eine type-specifier-seq  zugelassen.

typespec.c
int main(){ switch( const int i = 0 ); }

Siehe auch

http://www.josuttis.com/cppcode/vc%2B%2B.html
Nicolai M. Josuttis: C++ and Visual C++
http://www.dinkumware.com/vc_fixes.html
Fixes for Library Bugs in VC++ V5.0/V6.0
http://www.medini.org/software/msviscxx/msviscxx.html
MicroSoft Visual C++ Deficiencies

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram721254 stefan_ram:721254 Fehler, Bug, Bugs, Problem, Probleme, Störung, Störungen, Produktmangel, Produktmängel, kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , source, source code,sourcecode, Programmier sprache C++ Sprache, C++, CXX, C+, Programm, Programme, C++-Programm C++ Sprache C++ Programmiersprache C++ c++-Programme, Standard C++, Programmieren in C++, Programmieren in CXX, Programmieren in CPP, Programmieren in Cplusplus, Die Programmiersprache C++, Die Programmiersprache CXX, Die Programmiersprache CPP, Die Programmiersprache Cplusplus, Die Programmier sprache C++, Die Programmier sprache CXX, Die Programmier sprache CPP, Die Programmier sprache Cplusplus, CXX-Programmierung, C++-Programmierung, CPP-Programmierung, c-plus-plus, cpluplus-Programmierung, ANSI-C++, ANSI-CXX, ANSI-CPP, ANSI C++, ANSI CXX, ANSI-cpluscplus ISO-C++, ISO-CXX, ISO CPP, ISO C++, ISO CXX, ISO/IEC-C++, ISO/IEC-CXX, ISO/IEC CPP, ISO/IEC C++, ISO/IEC CXX, IEC-C++, IEC-CXX, IEC CPP, IEC C++, IEC CXX, International Standard ISO/IEC 14882 First edition 1998-09-01, ISO/IEC 14882:1998(E), ISO/IEC 14882:2003(E), ASC X3, 7/27/98, c plus plus, C ++, cplusplus, c plus plus, Standard C+ programmieren, Stamdard C++ programmieren, Standart C+ programmieren, Stamdart C++ programmieren, INCITS/ISO/IEC 14882-1998, Information Technology - Programming Languages - C++ (formerly ISO/IEC 14882-1998), Programmieren in C++,Programmiersprache C++ CPP CXX Cplusplus c plus plus International Standard ISO/IEC 14882 First edition 1998-09-01 Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd721254, slrprddef721254, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/msvc_v6d0eigenschaften_de