2010-05-19 2 views
1

Salut les gars. Découvrez cette partie de l'exemple de code.Erreur dans VC++ pour le code qui semble parfaitement bon C++?

#include "stdafx.h" 
#include<conio.h> 
#include<string.h> 

class person{ 
private char name[20]; 
private int age; 

public void setValues(char n[],int a) 
{ 
    strcpy(this->name,n); 
    this->age=a; 
} 
public void display() 
{ 
    printf("\nName = %s",name); 
    printf("\nAge = %d",age); 
} 
}; 


int _tmain(int argc, _TCHAR* argv[]) 
{ 
person p; 
p.setValues("ram",20); 
p.display(); 
getch(); 
return 0; 
} 

Je reçois les erreurs suivantes:

1> ------ Construire commencé: projet: d'abord, la configuration: Debug Win32 ------ 1> d'abord. cpp 1> c: \ documents et paramètres \ dark wraith \ mes documents \ studio visuel 2010 \ projets \ first \ first \ first.cpp (9): erreur C2144: erreur de syntaxe: 'char' doit être précédé de ':'

1> c: \ documents et paramètres \ dark wraith \ mes documents \ studio visuel 2010 \ projects \ first \ first \ first.cpp (10): erreur C2144: syntaxe erreur: 'int' doit être précédé de ':'

1> c: \ documents et paramètres \ dark wraith \ mes documents \ studio visuel 2010 \ projects \ first \ first \ first.cpp (12): erreur C2144 : erreur de syntaxe: 'void' doit être précédé de ':'

1> c: \ documents et paramètres \ dark wraith \ mes documents \ studio visuel 2010 \ projects \ first \ first \ first.cpp (17): erreur C2144: erreur de syntaxe: 'void' doit être précédé de ':' ========== Build: 0 réussi, 1 échoué, 0 mis à jour, 0 sauté ====== ====

+3

Ce code me semble très C'ish. – SurvivalMachine

+0

Je me demande comment vous définissez "parfaitement bon code C++"? – YeenFei

Répondre

11

La syntaxe de la déclaration public et private est erronée. Contrairement à d'autres langues, en C++, il devrait être

class person{ 
private: 
char name[20]; 
int age; 
public: 
    void display(); 

....

+0

remercie Naveen et Alex. Mais je me souviens d'écrire du code où j'ai spécifié chaque spécificateur d'accès aux champs. Est-ce seulement spécifique à MSVC++? – Laz

+0

non c'est du C++ standard, vous l'avez peut-être fait en C# – Naveen

+3

@Ram: Ce que vous avez écrit me semble être un mélange infernal de C et C# pour moi et me fait mal aux yeux. Peut-être que cela fonctionne en C++/CLI? Je ne saurais pas, puisque je ne l'ai jamais utilisé. – sbi

3

En C++, private fonctionne comme ceci:

class A 
{ 
private: 
    void f(); 
    void g(); 
}; 

Notez le côlon.