#include "stdafx.h"
#include "iostream"
using namespace std; 
class Student
{int number;
char name;
int telphone;
char sex;
public: 
Student::~Student (){}
void Person(int num,char nam,int tel,char s){number=num;name=nam;telphone=tel;sex=s;}
void Getnumber(){}
void Getname(){}
void Gettelphone(){}
void GetSex(){}
};
 void Student::Getnumber()
{
cout<<Student.number;
}
void Student::Getname()
{
cout<<Student.name;
}
void Student::Gettelphone()
{
cout<<Student.telphone;
}
void Student::GetSex()
{
cout<<Student.sex;
}
void main()
{
Student student1;
char m;
char s;
student1.Person(1,m,123456,s);
system("pause");}1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(23): error C2084: 函数“void Student::Getnumber(void)”已有主体
1>          c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(17) : 参见“Getnumber”的前一个定义
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(24): warning C4832: 标记“.”在 UDT“Student”之后是非法的
1>          c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(8) : 参见“Student”的声明
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(24): error C2275: “Student”: 将此类型用作表达式非法
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(24): error C2228: “.number”的左边必须有类/结构/联合
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(27): error C2084: 函数“void Student::Getname(void)”已有主体
1>          c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(18) : 参见“Getname”的前一个定义
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(28): warning C4832: 标记“.”在 UDT“Student”之后是非法的
1>          c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(8) : 参见“Student”的声明
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(28): error C2275: “Student”: 将此类型用作表达式非法
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(28): error C2228: “.name”的左边必须有类/结构/联合
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(31): error C2084: 函数“void Student::Gettelphone(void)”已有主体
1>          c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(19) : 参见“Gettelphone”的前一个定义
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(32): warning C4832: 标记“.”在 UDT“Student”之后是非法的
1>          c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(8) : 参见“Student”的声明
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(32): error C2275: “Student”: 将此类型用作表达式非法
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(32): error C2228: “.telphone”的左边必须有类/结构/联合
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(35): error C2084: 函数“void Student::GetSex(void)”已有主体
1>          c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(20) : 参见“GetSex”的前一个定义
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(36): warning C4832: 标记“.”在 UDT“Student”之后是非法的
1>          c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(8) : 参见“Student”的声明
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(36): error C2275: “Student”: 将此类型用作表达式非法
1>c:\documents and settings\huwei\my documents\visual studio 2010\projects\baidu\baidu\baidu.cpp(36): error C2228: “.sex”的左边必须有类/结构/联合
1>
1>生成失败。

解决方案 »

  1.   

    类的成员函数直接调用成员变量就行了。cout<<Student.number;改为cout<<number;类是虚拟的存在,只用实例化以后才要声明成员是谁的你要好好学习基础了
      

  2.   

    把头文件中的void Getnumber(){}这种函数后面的{}去掉!!!加了{}就表示已定义函数体啦。
      

  3.   

    cout<<Student.number;
    改成cout<<number;
    这个.前面必须是实例,不是类
      

  4.   

    #include "stdafx.h"#include <iostream>
    using namespace std;
     
    class Student
    {

    int number;
    char name;
    int telphone;
    char sex;
    public:  
    Student::~Student (){}
    void Person(int num,char nam,int tel,char s){number=num;name=nam;telphone=tel;sex=s;}
    void Getnumber();
    void Getname();
    void Gettelphone();
    void GetSex();
    };
    void Student::Getnumber()
    {
    cout<<number;
    }
    void Student::Getname()
    {
    cout<<name;
    }
    void Student::Gettelphone()
    {
    cout<<telphone;
    }
    void Student::GetSex()
    {
    cout<<sex;
    }
    void main()
    {
    Student student1;
    char m;
    char s;
    student1.Person(1,m,123456,s);
    system("pause");
    }
      

  5.   

    Getnumber
    在类里这叫声明,像是C往顶部放的声明一样
    在C++里,要最好把头文件声明与实现分开
    声明是不能带{}的,带了就像是一个"空实现"了
    你后来再去实现就会出错
    cout<<Student.number;
    Student是个类,number是成员变量,也只是声明,正常情况是没有值的
    你这样输出当然是错误的
    你那个Person 应改为构造函数更好些
      

  6.   

    ++
    还有:
    void main()
    {
    Student student1;
    char m;
    char s;
    student1.Person(1,m,123456,s);//这个m,s没有初始化
    system("pause");
    }