Kompilatorfel C2500 till och med C2599

Artiklarna i det här avsnittet i dokumentationen förklarar en delmängd av de felmeddelanden som genereras av kompilatorn.

Viktigt!

Visual Studio-kompilatorer och byggverktyg kan rapportera många typer av fel och varningar. När ett fel eller en varning har hittats kan byggverktygen göra antaganden om kod avsikt och försöka fortsätta, så att fler problem kan rapporteras samtidigt. Om verktygen gör fel antagande kan det hända att senare fel eller varningar inte gäller för projektet. När du korrigerar problem i projektet börjar du alltid med det första felet eller varningen som rapporteras och återskapar ofta. En korrigering kan lösa flera efterföljande fel.

Om du vill få hjälp med ett visst diagnostikmeddelande i Visual Studio väljer du det i fönstret Utdata och trycker på F1-tangenten. Visual Studio öppnar dokumentationssidan för det felet, om det finns ett sådant. Du kan också använda sökverktyget överst på sidan för att hitta artiklar om specifika fel eller varningar. Eller bläddra i listan med fel och varningar efter verktyg och skriv in innehållsförteckningen på den här sidan.

Anmärkning

Alla Visual Studio-fel eller -varningar dokumenteras inte. I många fall innehåller diagnostikmeddelandet all tillgänglig information. Om du landade på den här sidan och tror att felet eller varningsmeddelandet behöver ytterligare förklaring kan du meddela oss med hjälp av feedbackknapparna på den här sidan. Om du tror att felet eller varningen är fel, eller om du har hittat ett annat problem med verktygsuppsättningen, rapporterar du ett produktproblem på webbplatsen Developer Community. Du kan också skicka feedback och ange buggar i IDE:t. I Visual Studio går du till menyraden och väljer Hjälp > Skicka feedback > Rapportera ett problemeller skicka ett förslag med hjälp av Hjälp > Skicka feedback > Föreslå en funktion. Vissa kompilatorfelavsnitt skapades men genereras inte längre av kompilatorn och omdirigeras nu till den här sidan i stället.

Du kan få ytterligare hjälp med fel och varningar i Microsoft Q&A C++-forum. Du kan också söka efter fel- eller varningsnumret på webbplatsen för Visual Studio C++ Developer Community. Du kan också söka Stack Overflow för att hitta lösningar.

Länkar till ytterligare hjälp- och communityresurser finns i Visual C++ Help and Community.

Felmeddelanden

Fel Meddelande
Kompilatorfel C2500 "identifier1": "identifier2" är redan en direkt basklass
Kompilatorfel C2501 "identifierare": "__declspec(specifier)" kan endast tillämpas på strukturer, unioner, klasser eller icke-signerade bitfältmedlemmar."
Kompilatorfel C2502 "identifierare": för många åtkomstmodifierare i basklassen
Kompilatorfel C2503 "klass": basklasser får inte innehålla matriser med noll storlek
Kompilatorfel C2504 "klass": odefinierad basklass
Kompilatorfel C2505 "symbol": "__declspec(specifier)" kan endast tillämpas på deklarationer eller definitioner av globala objekt eller statiska datamedlemmar
Kompilatorfel C2506 'member': '__declspec(specifier)' kan inte tillämpas på den här symbolen
Kompilatorfel C2507 "identifierare": för många virtuella modifierare i basklassen
Kompilatorfel C2508 "identifierare": "__declspec(specifier1)" kan inte kombineras med "__declspec(specifier2)"
Kompilatorfel C2509 "identifierare": medlemsfunktionen deklareras inte i "klass"
Kompilatorfel C2510 "identifier": till vänster om "::" måste vara en klass/struktur/union
Kompilatorfel C2511 "identifier": överbelastad medlemsfunktion hittades inte i "klass"
Kompilatorfel C2512 "identifierare": ingen lämplig standardkonstruktor tillgänglig
Kompilatorfel C2513 '*type': ingen variabel deklarerad före '='
Kompilatorfel C2514 "class": klassen har inga konstruktorer
Kompilatorfel C2515 "identifierare": "vtguard" kan endast tillämpas på klassdeklarationer eller definitioner
Kompilatorfel C2516 "klass": är inte en juridisk basklass
Kompilatorfel C2517 "identifierare": rätten till "::" är odefinierad
Kompilatorfel C2518 nyckelordet "keyword" är ogiltigt i en basklasslista. förväntade ett class namn
Kompilatorfel C2519 "identifierare": WinRT-attribut får endast innehålla offentliga fält
Kompilatorfel C2520 "klass": ingen icke-explicit konstruktor tillgänglig för implicit konvertering
Kompilatorfel C2521 En destruktor eller finaliserare tar inga argument
Kompilatorfel C2522 "identifierare": Överlagringsidentifieraren kan inte användas på "identifier1" eftersom den redan har angetts för "identifier2"
Kompilatorfel C2523 "class::~identifier": destruktör/finalisator tag-missmatch
Kompilatorfel C2524 "identifier": en destruktor/slutförare måste ha en void-parameterlista
Kompilatorfel C2525 "identifierare": Parametern "identifier1" heter "identifier2" på basfunktionen och måste matchas i en publicerad implementering
Kompilatorfel C2526 "identifier1": C-länkfunktionen kan inte returnera C++-klassen "identifier2"
Kompilatorfel C2527 "identifier": DefaultOverload kan inte anges för både "funktion1" och "funktion2". Ta bort en specifikation eller byt namn på funktionen under implementeringen
Kompilatorfel C2528 "identifierare": pekare till referens är ogiltig
Kompilatorfel C2529 "identifierare": referensen till referensen är olaglig
Kompilatorfel C2530 "identifikator": referenser måste initieras
Kompilatorfel C2531 "identifierare": referens till ett bitfält som är ogiltigt
Kompilatorfel C2532 "identifier": ogiltig modifierare för referens
Kompilatorfel C2533 "identifier": konstruktorer får inte ha en returtyp
Kompilatorfel C2534 "identifierare": konstruktorn kan inte returnera ett värde
Kompilatorfel C2535 "identifierare": medlemsfunktionen har redan definierats eller deklarerats
Kompilatorfel C2536 Föråldrad.
Kompilatorfel C2537 "specifikatör": olaglig länkningsspecifikation
Kompilatorfel C2538 Föråldrad.
Kompilatorfel C2539 Föråldrad.
Kompilatorfel C2540 icke-konstant uttryck som matrisgräns
Kompilatorfel C2541 "identifierare": kan inte ta bort objekt som inte är pekare
Kompilatorfel C2542 "identifierare": klassobjektet har ingen konstruktor för initiering
Kompilatorfel C2543 förväntade ']' för operatorn '[]'
Kompilatorfel C2544 förväntade ')' för operatorn '()'
Kompilatorfel C2545 operator: det går inte att hitta en överlagrad operator
Kompilatorfel C2546 "identifierare": när en typ definieras i både en PIA och en no-PIA måste PIA refereras först
Kompilatorfel C2547 "identifierare": Alla parametrar för en publicerad metod måste uttryckligen namnges i deklarationen
Kompilatorfel C2548 "function": standardargument för parameterparameter saknas
Kompilatorfel C2549 användardefinierad konvertering kan inte ange en returtyp
Kompilatorfel C2550 "identifierare": konstruktorinitieringslistor tillåts endast för konstruktordefinitioner
Kompilatorfel C2551 Typen "void *" behöver explicit typomvandling
Kompilatorfel C2552 "identifierare": Icke-aggregat kan inte initieras med en initialiseringslista
Kompilatorfel C2553 'typederived_class::function': returtypen för åsidosättande av virtuell funktion skiljer sig från 'typebase_class::function'
Kompilatorfel C2554 "variabel": "constinit" tillåts endast för en variabeldeklaration med statisk lagringstid eller trådlagringstid
Kompilatorfel C2555 "derived_class::function": Åsidosättande returtyp för virtuell funktion skiljer sig och är inte samvariant från "base_class::function"
Kompilatorfel C2556 "function1": överlagrade funktioner skiljer sig endast efter returtyp från "function2"
Kompilatorfel C2557 "identifierare": Privata och skyddade medlemmar kan inte initieras utan konstruktor
Kompilatorfel C2558 klass "klass": ingen tillgänglig kopieringskonstruktor eller kopieringskonstruktorn deklareras som "explicit"
Kompilatorfel C2559 "identifier": kan inte överbelasta en medlemsfunktion utan ref-kvalificerare med en medlemsfunktion med ref-kvalificerare
Kompilatorfel C2560 "identifier": kan inte överlagra en metod med referenskvalificerare med en metod utan referenskvalificerare"
Kompilatorfel C2561 Funktion: funktionen måste returnera ett värde
Kompilatorfel C2562 "function": funktionen "void" returnerar ett värde
Kompilatorfel C2563 matchningsfel i den formella parameterlistan
Kompilatorfel C2564 Föråldrad.
Kompilatorfel C2565 "identifierare": ref-qualifier är olagligt för konstruktorer/destruktorer
Kompilatorfel C2566 överlagrad funktion i villkorsuttryck
Kompilatorfel C2567 det går inte att öppna metadata i "filnamn", possible_reason
Kompilatorfel C2568 "identifierare": det går inte att lösa funktionsöverbelastningen
Kompilatorfel C2569 "identifier": enum/union kan inte användas som basklass
Kompilatorfel C2570 "identifierare": union kan inte ha basklasser
Kompilatorfel C2571 "identifier": virtuell funktion kan inte vara i union "union"
Kompilatorfel C2572 "function": omdefinition av standardargument: parameternummer
Kompilatorfel C2573 "klass": det går inte att ta bort pekare till objekt av den här typen, eftersom klassen inte har någon icke-placeringsspecifik överlagring för "operator delete". Använd ::delete eller lägg till "operator delete(void*)" i klassen
Kompilatorfel C2574 "funktion": kan inte deklareras som statisk
Kompilatorfel C2575 "identifier": endast baser och medlemsfunktioner kan vara virtuella
Kompilatorfel C2576 "identifier": kan inte införa en ny virtuell metod som 'public'. Överväg att göra metoden icke-virtuell eller ändra tillgängligheten till "intern" eller "skyddad privat"
Kompilatorfel C2577 "identifier": en destruktor/finalizer kan inte ha en returtyp
Kompilatorfel C2578 "klass": typen får inte ha en "skyddad" eller "skyddad offentlig" konstruktor
Kompilatorfel C2579 det går inte att lösa typen typ (offset). Det förväntas i filnamn
Kompilatorfel C2580 "identifierare": flera versioner av standardfunktioner för specialmedlemmar tillåts inte
Kompilatorfel C2581 "type": den statiska funktionen operator =är ogiltig
Kompilatorfel C2582 Funktionen operator är inte tillgänglig i typ
Kompilatorfel C2583 "identifierare": "const/volatile" "this" pekare är olaglig för konstruktorer/destruktorer
Kompilatorfel C2584 "klass": direktbasen "base_class2" är otillgänglig. redan en bas av "base_class1"
Kompilatorfel C2585 explicit konvertering till "typ" är tvetydig
Kompilatorfel C2586 felaktig användardefinierad konverteringssyntax: olagliga indirektioner
Kompilatorfel C2587 "identifierare": otillåten användning av lokal variabel som standardparameter
Kompilatorfel C2588 '::~identifier': otillåten global destruktor/finalisator
Kompilatorfel C2589 'identifier': ogiltig token till höger om '::'
Kompilatorfel C2590 "identifierare": endast en konstruktor kan ha en bas-/medlemsinitierarlista
Kompilatorfel C2591 ExclusiveTo kan inte använda "type" som argument. Endast en referensklass är ett giltigt argument
Kompilatorfel C2592 "klass": "base_class2" ärvs från "base_class1" och kan inte anges på nytt
Kompilatorfel C2593 Operatoridentifieraren är tvetydig
Kompilatorfel C2594 operator: tvetydiga konverteringar från type1 till type2
Kompilatorfel C2595 "Identifierare" En WinRT-attributtyp måste vara förseglad
Kompilatorfel C2596 "identifier" Ett WinRT-attributfält kan bara vara en "public enum class", "int", "unsigned int", "bool", "Platform::Type", "Platform::String" eller "Windows::Foundation::HResult"
Kompilatorfel C2597 illegal referens till icke-statisk medlem 'identifier'
Kompilatorfel C2598 länkningsspecifikationen måste finnas i ett globalt omfång
Kompilatorfel C2599 "identifier": framåtriktad deklaration av en hanterad/WinRT-uppräkning är inte tillåtet

Se även

C/C++ Kompilator- och byggverktygsfel och varningar
Compiler fel C2000 - C3999, C7000 - C7999